題目跳轉
題目描述
給定一個由 整數 組成的 非空 陣列所表示的非負整數,在該數的基礎上加一,
最高位數字存放在陣列的首位, 陣列中每個元素只存盤單個數字,
你可以假設除了整數 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 <= digits.length <= 100
0 <= digits[i] <= 9
思路
可以分三種情況討論
- digits最后面的數字不是9,則可以將其加1進行回傳
- digits最后面的數字為9,則逆向向前查找,找到第一個不為9的數字,將其加1,然后將其后面為9的數字都置0,進行回傳
- digits全部數字都為9,則需要構造一個新陣列,長度比digits多1,將其首位置1,進行回傳,
代碼
class Solution {
public int[] plusOne(int[] digits) {
int n=digits.length;
for(int i=n-1;i>=0;i--){
if(digits[i]!=9){
digits[i]++;
for(int j=i+1;j<n;j++){
digits[j]=0;
}
return digits;
}
}
//如果digits中所有的元素都是9,需要回傳一個長度為n+1的新陣列
int [] ans=new int[n+1];
ans[0]=1;
return ans;
}
}
第一次寫博客,大佬勿噴,記錄一下題解
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/330133.html
標籤:其他
上一篇:Jmeter性能測驗的標準流程
下一篇:開發有35歲危機,測驗怎么樣?
