方案是一圈一圈打印
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:申請域名、雅安服務器托管、營銷軟件、網(wǎng)站建設、蒲城網(wǎng)站維護、網(wǎng)站推廣。
在寫代碼過程中要注意矩陣中下標的記錄
先設定好邊界,行、列,還有初始值。設定好邊界后,用while去遍歷打印的動作,先右后下再左再上,這個順時針的動作,因為你會發(fā)現(xiàn)其實順時針的規(guī)律也就這樣,只要重復循環(huán)這個動作即可得出答案。
//上邊一條邊
while (leftUpCol<= rightDownCol) {
System.out.println(matrix[leftUpRow][leftUpCol++] + " ");
}
//恢復
leftUpCol = rightDownCol;
leftUpRow++;
//右邊一條便邊
while (leftUpRow<= rightDownRow) {
System.out.println(matrix[leftUpRow++][leftUpCol]);
}
//恢復
leftUpRow = rightDownRow;
leftUpCol--;
下邊一條邊是列在減少
則leftUpRow需要 >= 0
所以要重新將指針賦值,并將后邊的指針變量進行修改
//下邊一條邊
while (c >= leftUpCol) {
System.out.println(matrix[r][c--]);
}
//恢復
c = leftUpCol;
r--;
while (r >leftUpRow){
System.out.println(matrix[r--][c]);
}
應該數(shù)據(jù)初始化之后繼續(xù)加上一個while循環(huán)
并且leftUpRow和leftUpCol應該遞增,rightDownRow和rightDownCol應該遞減
在外循環(huán)中r和c應該每次都進行初始化
while (leftUpRow<= rightDownRow && leftUpCol<= rightDownCol) {……};
源代碼public class Case01_Print2DArr {
public static void main(String[] args) {
int[][] matrix = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16},
};
print(matrix);
}
static void print(int[][] matrix) {
int leftUpRow = 0, leftUpCol = 0;//設置好邊界值
rightDownRow = matrix.length - 1;//行
rightDownCol = matrix[0].length - 1;//列
while (leftUpRow<= rightDownRow && leftUpCol<= rightDownCol) {//設置邊界,且遍歷
int r = leftUpRow, c = leftUpCol;//更新步驟的初始值
//上邊一條邊
while (c<= rightDownCol) {
System.out.println(matrix[r][c++]);
}
//恢復
c = rightDownCol;
r++;
//右邊一條便邊
while (r<= rightDownRow) {
System.out.println(matrix[r++][c]);
}
//恢復
r = rightDownRow;
c--;
//下邊一條邊
while (c >= leftUpCol) {
System.out.println(matrix[r][c--]);
}
//恢復
c = leftUpCol;
r--;
while (r >leftUpRow) {
System.out.println(matrix[r--][c]);
}
leftUpRow++;
leftUpCol++;
rightDownRow--;
rightDownCol--;
}
}
}
測試結(jié)果
注意1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧