1.題目
給定一個由 整數 組成的 非空 數組所表示的非負整數,在該數的基礎上加一。
最高位數字存放在數組的首位, 數組中每個元素只存儲單個數字。
你可以假設除了整數 0 之外,這個整數不會以零開頭。
2.示例
示例?1:
輸入:digits = [1,2,3]
輸出:[1,2,4]
解釋:輸入數組表示數字 123。
?示例?2:
輸入:digits = [4,3,2,1]
輸出:[4,3,2,2]
解釋:輸入數組表示數字 4321。?
?示例 3:
輸入:digits = [0]
輸出:[1]
?3.思路
這道題看著比較簡單,但是也是存在有陷阱,
第一點,當末位數是9時候,在加一時候需要進位。
其次就是當首位為9時候,加一需要重新創建一個新的數組,并且在新的數組的首位賦值為1即可
4.代碼
class Solution {public int[] plusOne(int[] digits) {if (digits.length==1 &&digits[0]==0){digits[0] = 1;}else {digits[digits.length-1]+=1;}for (int i= digits.length-1;i>=0;i--){if (digits[i]==10){if (digits.length ==1 || i == 0){digits = new int[digits.length+1];digits[0]=1;break;}digits[i] =0;digits[i-1]+=1;}}return digits;}
}
?會了?試試挑戰下一題!?(^?^●)ノシ (●′?`)?
LeetCode150道面試經典題-- 加一(簡單)_Alphamilk的博客-CSDN博客