Task24(一般)陣列 54螺旋矩陣

2021-09-26 23:18:08 字數 834 閱讀 9735

54. 螺旋矩陣
給定乙個包含 m x n 個元素的矩陣(m 行, n 列),請按照順時針螺旋順序,返回矩陣中的所有元素。

示例 1:

輸入:[

[ 1, 2, 3 ],

[ 4, 5, 6 ],

[ 7, 8, 9 ]

]輸出: [1,2,3,6,9,8,7,4,5]

示例 2:

輸入:[

[1, 2, 3, 4],

[5, 6, 7, 8],

[9,10,11,12]

]輸出: [1,2,3,4,8,12,11,10,9,5,6,7]

思路:將已經走過的地方置0,然後拐彎的時候判斷一下是不是已經走過了,如果走過了就計算一下新的方向:

class solution(object):

def spiralorder(self, matrix):

「」":type matrix: list[list[int]]

:rtype: list[int]

「」"

r, i, j, di, dj = , 0, 0, 0, 1

if matrix != :

for _ in range(len(matrix) * len(matrix[0])):

matrix[i][j] = 0

if matrix[(i + di) % len(matrix)][(j + dj) % len(matrix[0])] == 0:

di, dj = dj, -di

i += di

j += dj

return r

Task26(一般)陣列 62不同路徑

62.不同路徑 乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?例如,上圖是乙個7 x 3 的網格。有多少可能的路徑?說明 m 和 n 的值均不超過...

Task33(一般)鍊錶 61旋轉鍊錶

61旋轉鍊錶 給定乙個鍊錶,旋轉鍊錶,將鍊錶每個節點向右移動 k 個位置,其中 k 是非負數。示例 1 輸入 1 2 3 4 5 null,k 2 輸出 4 5 1 2 3 null 解釋 向右旋轉 1 步 5 1 2 3 4 null 向右旋轉 2 步 4 5 1 2 3 null示例 2 輸入 ...

2 陣列和鍊錶的一般介紹

1 陣列是什麼?陣列是具有某種相同特徵的物件的集合。比如 int a 10 是乙個存放10個整型數字的集合,double a 10 是乙個存放10個雙精度數字的集合等。陣列其實是乙個資料結構,因為當我們在宣告並定義乙個陣列的時候,程式就會在記憶體中為我們申請乙個連續的n sizeof type 大小...