給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。
最高位數字存放在陣列的首位, 陣列中每個元素只儲存單個數字。
你可以假設除了整數 0 之外,這個整數不會以零開頭。
示例 1: 輸入:digits = [1,2,3] 輸出:[1,2,4] 解釋:輸入陣列表示數字 123。對陣列中數字進行分析,加1的數字存在兩種情況示例 2: 輸入:digits= [4,3,2,1] 輸出:[4,3,2,2] 解釋:輸入陣列表示數字 4321。
示例 3: 輸入:digits = [0] 輸出:[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,...