執行結果:
通過
顯示詳情
執行用時 :0 ms, 在所有 Java 提交中擊敗了100.00% 的用戶
內存消耗 :35.2 MB, 在所有 Java 提交中擊敗了44.05%的用戶
題目:
給定一個由整數組成的非空數組所表示的非負整數,在該數的基礎上加一。
最高位數字存放在數組的首位, 數組中每個元素只存儲單個數字。
你可以假設除了整數 0 之外,這個整數不會以零開頭。
示例 1:
輸入: [1,2,3]
輸出: [1,2,4]
解釋: 輸入數組表示數字 123。
示例 2:
輸入: [4,3,2,1]
輸出: [4,3,2,2]
解釋: 輸入數組表示數字 4321。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/plus-one
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。
思路:
有當前值還有進位,另外還要考慮數組擴張的情況。
代碼:
class Solution {
public int[] plusOne(int[] digits) {
int len=digits.length-1;
int jinwei=1;
while(jinwei==1)
{
digits[len]+=jinwei;
jinwei=digits[len]/10;
digits[len]=digits[len]%10;
if(len==0&&jinwei==1)
{
int[] result=new int[digits.length+1];
System.arraycopy(digits,0,result,1,digits.length);
result[0]=1;
return result;
}
len--;
}
return digits;
}
}