給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。
最高位數字存放在陣列的首位, 陣列中每個元素只儲存單個數字。
你可以假設除了整數 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,...