給定乙個含有 m x n 個元素的矩陣(m 行,n 列),請以對角線遍歷的順序返回這個矩陣中的所有元素,對角線遍歷如下圖所示。
正解:這道題太焦心了!
classsolution:
def finddiagonalorder(self, matrix: list[list[int]]) ->list[int]:
ifnot matrix: return
row =len(matrix)
col =len(matrix[0])
res =
i = j =0
for _ in range(row*col):#
有多少個數就查詢多少次
把第乙個數加進來
if i == 0 and j%2 == 0 and j < col-1:#
第一行中找偶數列,找開始
j += 1#
就往右走,準備從右上往左下走
elif (i+j)%2 == 0 and j == col-1:#
奇數列,找終止
i += 1#
就往下走
elif j == 0 and i%2 == 1 and i < row-1:#
第一列中找奇數列,找開始
i += 1
elif (i+j)%2 == 1 and i == row-1:#
#偶數列,找終止
j += 1#
那就往右走,準備從左下往右上走
elif (i+j)%2 == 1:
i += 1j -= 1
elif (i+j)%2 ==0:
i -= 1j += 1
return res
每日一題 力扣 計畫
98 驗證二叉搜尋樹 問題給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 1.節點的左子樹只包含小於當前節點的數。2.節點的右子樹只包含大於當前節點的數。3.所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 1 3 輸出 true示例2 輸入 5 1 4...
力扣每日一題 6 14
1300 轉變陣列後最接近目標值的陣列和 給你乙個整數陣列 arr 和乙個目標值 target 請你返回乙個整數 value 使得將陣列中所有大於 value 的值變成 value 後,陣列的和最接近 target 最接近表示兩者之差的絕對值最小 如果有多種使得和最接近 target 的方案,請你返...
每日一題力扣48
給定乙個 n n 的二維矩陣 matrix 表示乙個影象。請你將影象順時針旋轉 90 度。你必須在 原地 旋轉影象,這意味著你需要直接修改輸入的二維矩陣。請不要 使用另乙個矩陣來旋轉影象。正解 旋轉90度就是,先鏡面對稱,再轉置即可 class solution defrotate self,mat...