leetcode每日一題 54 螺旋矩陣

2021-10-22 09:53:25 字數 1325 閱讀 2753

題目:

給你乙個 m 行 n 列的矩陣 matrix ,請按照 順時針螺旋順序 ,返回矩陣中的所有元素。

解答:

class

solution

:def

spiralorder

(self, matrix: list[list[

int]])

-> list[

int]

: m=

len(matrix)

n=len(matrix[0]

) i,j=0,

0 res=

count =

(min

(m, n)+1

)//2# 總共有多少層

res =

# 儲存結果

for lr in

range

(count)

: start = lr # 該層左上角的位置(start, start)

last_col = n-

1-lr # 該層最後一列的索引

last_row = m-

1-lr # 該層最後一行的索引

for c in

range

(start, last_col+1)

:# from left to right

[c])

for r in

range

(start+

1,last_row+1)

:# from top to bottom

[last_col]

)if last_row != start and last_col != start:

for c1 in

range

(last_col-

1, start-1,

-1):

# from right to bottom

[c1]

)for r1 in

range

(last_row-

1, start,-1

):# from bottom to top

[start]

)return res

每日一題力扣54

給你乙個m行n列的矩陣matrix,請按照 順時針螺旋順序 返回矩陣中的所有元素。正解 class solution def spiralorder self,matrix list list int list int ifnot matrix return m,n len matrix len m...

每日一題 LeetCode

在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數。示例 1 輸入 7,5,6,4 輸出 5 限制 0 陣列長度 50000 思想是 分治演算法 所有的 逆序對 於 3 個部分 左邊區間的逆序對 右邊區間的逆序對 橫跨兩個區間的...

LeetCode每日一題(題1028)

最近在刷leetcode每日一題,每次做完之後總能有些收穫,所以想著不如每天寫個部落格記錄一下做的題目的解法以及自己寫的時候問題出在 從先序遍歷還原二叉樹 題目大意 給出乙個字串 1 2 3 4 5 6 7 1代表節點的值,前面的 個數代表節點的深度。如果只有乙個子節點,保證這個節點為左子節點。返回...