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