力扣日記 066 加一

2021-10-01 03:08:09 字數 1330 閱讀 6456

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

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

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

方法一:

class

solution

:def

plusone

(self, digits)

: i=-1

while digits[i]==9

: digits[i]=0

i-=1if

-len

(digits)

>i:

break

else

: digits[i]+=1

return digits

digits.insert(i,1)

return digits

執行用時 :40 ms, 在所有 python3 提交中擊敗了90.39%的使用者

思路就是乙個while迴圈來判斷索引位上的數字是不是9,如果是就變成0,然後i-1,迴圈檢視下一位,如果發現某一位不為9正常退出迴圈就執行else,給這一位+1.

而如果所有的數都是9,那麼索引就會溢位,break退出迴圈,執行插入語句。..

.方法二:

class

solution

:def

plusone

(self, digits: list[

int])-

> list[

int]

:return

list

(map

(int

,list

(str

(int(''

.join(

map(

str, digits)))

+1))

))

這一種解法厲害在很好的利用了python的內建函式,僅一行就完成了題目要求。

但是速度上來講,並沒有什麼優勢。

!''.join(map(str, digits))

!map函式是將乙個函式作用於乙個可迭代物件,可以是列表,也可以是字串。所以以上語句可以是:

list(map(int, str(int(''.join(map(str, digits))) + 1)))

但是實踐證明雖然可以如此,但是執行速度顯著變慢???還是原語句好。

力扣066 加一

給定乙個由 整數 組成的 非空 陣列所表示的非負整數,在該數的基礎上加一。最高位數字存放在陣列的首位,陣列中每個元素只儲存單個數字。你可以假設除了整數 0 之外,這個整數不會以零開頭。輸入 digits 1,2,3 輸出 1,2,4 解釋 輸入陣列表示數字 123。輸入 digits 4,3,2,1...

力扣 題目66 加一

可以看成兩種情況 1.1 後一位 1 如果等於10 取0 前一位 1 2.擴充 第一位 1 等於10 取0 插入1在開頭 因此我們只需要乙個變數記錄是否進製了這題就會簡單很多 就不多說了 已經能夠看懂 1 include2 include3 include4 include5 using names...

66 加一 力扣(LeetCode)

給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。最高位數字存放在陣列的首位,陣列中每個元素只儲存單個數字。你可以假設除了整數 0 之外,這個整數不會以零開頭。示例 1 輸入 1,2,3 輸出 1,2,4 解釋 輸入陣列表示數字 123。示例 2 輸入 4,3,2,1 輸出 4,3,...