LeetCode 66 加一 簡單

2021-10-11 10:59:59 字數 1371 閱讀 1080

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

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

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

示例 1: 輸入:digits = [1,2,3] 輸出:[1,2,4] 解釋:輸入陣列表示數字 123。

示例 2: 輸入:digits= [4,3,2,1] 輸出:[4,3,2,2] 解釋:輸入陣列表示數字 4321。

示例 3: 輸入:digits = [0] 輸出:[1]

對陣列中數字進行分析,加1的數字存在兩種情況

除9之外的數字(直接返回加1的值)

數字9(需要考慮是否要進製)

class

solution

digits[i]=0

;}// 若跳出for迴圈,說明陣列元素全為9

digits.

insert

(digits.

begin()

,1);

//陣列digits中迭代器指向元素(陣列頭)前增加乙個元素1

return digits;

/* vectorres(digits.size() + 1);

res[0] = 1;

for(int i = 1; i < res.size(); i++)

return res;

*/}}

;

class

solution

:#python

defplusone

(self, digits: list[

int])-

> list[

int]

: carry =

1for i in

range

(len

(digits)-1

,-1,

-1):

digits[i]

, carry =

(carry + digits[i])%

10,(carry + digits[i])//

10#求餘, 向下整除

#將第i位數字加1再更新,如果第i位加1為10,則需要進製,將carry置為1,這樣再往前遍歷時前1位數字加1,如果不需要進製,carry置為0,往前遍歷時前1位數字不變

return

[carry]

+ digits if carry else digits

#如果carry為1,說明最高位為9(原陣列所有元素為9)且加1變為0,需要在最前面增加一位1

陣列加一

面試題 02.05. 鍊錶求和

LeetCode 66 加一(簡單)

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

leetcode 66 加一(C語言)

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

leetcode 66 加一 有趣

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