順時針列印矩陣(Python and C 解法)

2022-08-24 19:21:09 字數 1729 閱讀 8020

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。

示例 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++注釋。

1

class

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 };

1

class

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...