難度:簡單
題目描述:給定一個由 整數(shù) 組成的 非空 數(shù)組所表示的非負整數(shù),在該數(shù)的基礎上加一。
最高位數(shù)字存放在數(shù)組的首位, 數(shù)組中每個元素只存儲單個數(shù)字。
你可以假設除了整數(shù) 0 之外,這個整數(shù)不會以零開頭。
分析:
本題主要分為兩種情況:
1- 數(shù)組中沒有9 ---> 則在最后一位直接加一,例如:[1,2,3,4] ---> [1,2,3,5]
2- 數(shù)組中有9,同時也分為兩種情況:
2.1- 數(shù)組中的9并不會導致最后數(shù)組長度增加,例如: [1,2,3,9] ---> [1,2,4,0]
2.2- 數(shù)組中的9會導致最后數(shù)組長度增加,例如: [9,9] ---> [1,0,0]
解題:
位數(shù)為9則變?yōu)?即可,不是9則加一即可。
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;
}
}
int[] result = new int[n + 1];
result[0] = 1;
return result;
}
}