折騰了好久。。寫得好繁瑣。。相當於試出來的
占用記憶體:5852k
# -*- coding:utf-8 -*-
class solution:
# matrix型別為二維列表,需要返回列表
def printmatrix(self, matrix):
# write code here
if not matrix:
return
m = len(matrix)
n = len(matrix[0])
if m==1:
return matrix[0]
if n==1:
return [b[0] for b in matrix]
i = m//2
j = n//2
result =
cnt = 1
while (i and j):
if(i):
#第cnt個迴圈的行正向
result += matrix[cnt-1][cnt-1:(n-1)-cnt +1]
if j:
#第cnt個迴圈的列正向
result += [b[(n-1)-(cnt-1)] for b in matrix[cnt-1:(m-1)-cnt +1]]
#第cnt個迴圈的行負向
result += matrix[(m-1)-(cnt-1)][(n-1)-(cnt-1):cnt-1:-1]
if j:
#第cnt個迴圈的列負向
result += [b[cnt-1] for b in matrix[(m-1)-(cnt-1):cnt-1:-1]]
i -= 1
j -= 1
cnt += 1
#列為奇,且列小於等於行,再加一列
if n%2 and (not j):
result += [b[(n-1)-(cnt-1)] for b in matrix[cnt-1:(m-1)-cnt +1+1]]
return result
#行為奇,且行小於列
if m%2 and (not i):
result += matrix[cnt-1][cnt-1:(n-1)-cnt +1+1]
return result
return result
學會利用pop(),不管是一維,二維,還是在迴圈裡,都有效
第一種,每次取第一列,然後旋轉矩陣
占用記憶體:5732k
# -*- coding:utf-8 -*-
class solution:
# matrix型別為二維列表,需要返回列表
def printmatrix(self, matrix):
# write code here
def turn(mat):
if (not mat) or (not mat[0]):
return none
#m = len(mat)
n = len(mat[0])
result =
for i in range(n):
return result
res =
while (matrix and matrix[0]):
res += matrix.pop(0)
matrix = turn(matrix)
return res
另一種更簡潔的pop方法,不用每次旋轉矩陣,只需要列也pop掉即可
占用記憶體:5624k
# -*- coding:utf-8 -*-
class solution:
# matrix型別為二維列表,需要返回列表
def printmatrix(self, matrix):
# write code here
res =
while(matrix):
res += matrix.pop(0)
if(matrix and matrix[0]):
for row in matrix:
if matrix:
res += matrix.pop()[::-1]
if matrix and matrix[0]:
for row in matrix[::-1]:
return res
NOWCODER 劍指offer 樹的子結構
這個一定要想清楚匹配成功的條件,屬於子結構,必然是樹2遍歷完為空,樹1可能遍歷完了可能沒遍歷完 而剛開始需要兩棵樹都不為空,所以必須要寫乙個內部 迴圈呼叫 占用記憶體 5624k coding utf 8 class treenode def init self,x self.val x self....
劍指offer全套解答 劍指offer 1 5
1.二維陣列中的查詢 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。public class solution int n array 0 length i...
劍指offer全套解答 劍指offer 36 45
36.兩個鍊錶的第乙個公共節點 輸入兩個鍊錶,找出它們的第乙個公共結點。注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的 public class solution return p 37.數字在排序陣列 現的次數 統計乙個數字在公升序陣列 現的次數。publi...