力扣刷題日記(5)

2021-09-25 15:33:52 字數 1912 閱讀 6236

給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。

最高位數字存放在陣列的首位, 陣列中每個元素只儲存乙個數字。

你可以假設除了整數 0 之外,這個整數不會以零開頭。

示例 1:

輸入: [1,2,3]

輸出: [1,2,4]

解釋: 輸入陣列表示數字 123。

示例 2:

輸入: [4,3,2,1]

輸出: [4,3,2,2]

解釋: 輸入陣列表示數字 4321。

原題: 傳送門

今天也拿python 練練手~

題解:

class solution(object):

def plusone(self, digits):

index = len(digits) -1

plusin = 0

while true:

digits[index] += 1

plusin = digits[index] // 10

digits[index] %= 10

index -= 1

if((not plusin)or(index<0)):

break

if(plusin):

digits.insert(0,1)

return digits

簡單來說,就是進製,嗯哼

109 / 109 個通過測試用例

狀態:通過

執行用時:24 ms

嗯。。。速度比之前稍微有點進步,繼續努力。

給定乙個含有 m x n 個元素的矩陣(m 行,n 列),請以對角線遍歷的順序返回這個矩陣中的所有元素,對角線遍歷如下圖所示。

示例:輸入:

[[ 1, 2, 3 ],

[ 4, 5, 6 ],

[ 7, 8, 9 ]

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

解釋:

說明:給定矩陣中的元素總數不會超過 100000 。

原題: 傳送門

題解:

class solution(object):

def finddiagonalorder(self, matrix):

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

:rtype: list[int]

"""if(len(matrix)==0 or len(matrix[0])==0):

return

result =

m = len( matrix)

n = len(matrix[0])

count = m*n

x = y = 0

flag = true

for i in range(count):

if flag :

x-=1

y+=1

else:

x+=1

y-=1

if x>=m:

x-=1

y+=2

flag = true

elif y>=n:

x+=2

y-=1

flag = false

if x<0:

x=0flag = false

elif y<0:

y=0flag =true

return result

結果:

32 / 32 個通過測試用例

狀態:通過

執行用時:200 ms

嗯。。。就是奇偶的判斷,然後進行座標的變換 提取值塞進陣列,最後返回
回見。

力扣刷題日記(3)

最近有點懶,哈哈,刷題挺慢的,今天用python3 練練手了,題目如下 設計你的迴圈佇列實現。迴圈佇列是一種線性資料結構,其操作表現基於 fifo 先進先出 原則並且隊尾被連線在隊首之後以形成乙個迴圈。它也被稱為 環形緩衝器 迴圈佇列的乙個好處是我們可以利用這個佇列之前用過的空間。在乙個普通佇列裡,...

力扣刷題日記10 29

我變禿了 也變強了 1.刪除排序陣列中的重複項 給定乙個排序陣列,你需要在 原地 刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在 原地 修改輸入陣列 並在使用 o 1 額外空間的條件下完成。示例 1 給定陣列 nums 1,1,2 函式應該返回新...

力扣LeetCode刷題日記(一)

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...