题目
Plus One
题目大意:将一个数字加1,这个数字的每一位存放在数组里。
直接模拟相加的过程就好。
代码如下:
public class Solution {
public int[] plusOne(int[] digits) {
boolean flag = true;//标记有没有进位
for (int i = digits.length-1;i>=0;i--){
//小于9说明没有进位,直接加1后跳出循环
if(digits[i]<9){
digits[i] = digits[i] + 1;
break;
} else {
//有进位则继续检查前一位
digits[i] = 0;
//第一位有进位
if (i == 0) {
flag = false;
}
continue;
}
}
if (flag)
return digits;
else {
//第一位有进位的时候数组最前边要加1
int[] re = new int[digits.length+1];
re[0] = 1;
for (int i=1;i<re.length;i++)
re[i] = digits[i-1];
return re;
}
}
}
网友评论