給定乙個包含 m x n 個元素的矩陣(m 行, n 列),請按照順時針螺旋順序,返回矩陣中的所有元素。
示例 1:
輸入:
[ [ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]輸出: [1,2,3,6,9,8,7,4,5]
解法1:
public listspiralorder(int matrix)
return list;
}public void printonecircle(int matrix, int start, listlist)
//從上到下
if(start < endy)
}//從右到左
if(start < endx && start < endy)
}//從下到上
if(start < endx && start < endy - 1)
}}
解法2:
public listspiralorder(int matrix)
int tr = 0; //左上角的行
int tc = 0; //左上角的列
int dr = matrix.length - 1; //右下角的行
int dc = matrix[0].length - 1; //右下角的列
while(tr <= dr && tc <= dc)
return res;
}public void printedge(int matrix, int tr, int tc, int dr, int dc, listres)
}else if(tc == dc)
}else
while(curr != dr)
while(curc != tc)
while(curr != tr)
}}
LeetCode 54 順時針列印矩陣
輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。示例 1 輸入 matrix 1,2,3 4,5,6 7,8,9 輸出 1,2,3,6,9,8,7,4,5 示例 2 輸入 matrix 1,2,3,4 5,6,7,8 9,10,11,12 輸出 1,2,3,4,8,12,11,10,9...
順時針列印矩陣
輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 如果輸入如下矩陣 1 2 3 45 6 7 89 10 11 1213 14 15 16則依次列印出數字 1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10。這個題目 寫的並不好感覺,好多if看著就煩,就是...
順時針列印矩陣
題目 給定乙個矩陣,從外向內順時針列印矩陣中的每乙個數字。例如 給定矩陣 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 輸出應該為 分析 這道題的意思非常直觀,給人的感覺也是so easy,然而實際去做的時候會發現,如果結構劃分的不好,會出現很多的迴圈,而且包括對各種...