輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。
示例 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,5,6,7]
a00 a01 a02 a03
d10e11 e12
b13d20
g21f22
b23c30 c31 c32
b33第一圈的起點(0,0),第二圈的起點(1,1)...
列印迴圈終止條件:對於乙個n*m矩陣,存在2*star < n and 2*start 每一行每一列的列印前提條件見c++注釋。
1class
solution ; //
返回空的方法
5int rows = matrix.size(), columns = matrix[0
].size();
6 vector orderresult; //
儲存結果
7int start = 0; //起點8
9while (rows > 2 * start && columns > 2 * start)
31return
orderresult;32}
33 };
1class
solution:
2def spiralorder(self, matrix: list[list[int]]) ->list[int]:
3if len(matrix) ==0:
4return
5 rows =len(matrix)
6 colums =len(matrix[0])
7 start =0
8 orderresult =910
while rows > 2 * start and colums > 2 *start:
11 endx = colums - 1 -start
12 endy = rows - 1 -start
1314
for i in range(start, endx+1): #
從左到右列印
1516
17if endy > start: #
從上到下列印
18for i in range(start + 1, endy+1):
1920
21if endx > start and endy > start: #
從右到左列印
22for i in range(endx - 1, start - 1, -1):
2324
25if endx > start and endy - 1 > start: #
從下到上列印
26for i in range(endy - 1, start, -1):
2728
29 start += 1
30return orderresult
順時針列印矩陣
輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 如果輸入如下矩陣 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,然而實際去做的時候會發現,如果結構劃分的不好,會出現很多的迴圈,而且包括對各種...
順時針列印矩陣
from 題目 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 如果輸入如下矩陣 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次列印出數字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10。網上聽說聽到包括autod...