public class Solution {
public int[] plusOne(int[] digits) {
int len = digits.length;
if (len == 0) {
return digits;
}
//末尾小于9的情况
if (++digits[len - 1] < 10) {
return digits;
}
//如果末尾等于9,则会有进位
for (int i = len - 1; i > 0; i--) {
if(digits[i] > 9){
digits[i] %= 10;
digits[i-1]++;
}
else {
break;
}
}
//如果连最高位都产生了进位,则需要新建一个更大数组
if(digits[0] > 9){
int[] result = new int[len+1];
result[0] = 1;
result[1] = digits[0] % 10;
for(int i=1; i<len; i++){
result[i+1] = digits[i];
}
return result;
}
return digits;
}
}
Plus One
最新推荐文章于 2021-05-14 00:39:03 发布