描述
给定一个用数组表示的数字,即数组中每个数表示一个数位上的数,例如 [1,2,3],表示 123 ,请问给这个数字加一后得到的结果(结果同样以数组的形式返回)。
注意:数组中不可能出现负数,且保证数组的首位即数字的首位不可能是 0 。
数据范围: 数组长度满足 ,数组中每个数满足
分析
难点在于处理进位
用boolean变量表示是否需要进位
注意,dowhile,while后面有家分号!
import java.util.*;
public class Solution {
public int[] plusOne (int[] nums) {
int i = nums.length-1;
boolean flag = false;
do{
if(nums[i] + 1 == 10){
nums[i] = 0;
flag = true;
}else{
flag = false;
nums[i] += 1;
}
i--;
}while(i >= 0 && flag);
if(flag == true){
int[] res = new int[nums.length+1];
res[0] = 1;
return res;
}
return nums;
}
}