赞
踩
这道题比较简单,首先题目已经明确指出数组是非空的,而且数组中的每一位都是非负整数,所以我们不用考虑某些特殊情况,我的思路比较简单,就是和我们正常进行加法运算的步骤一样,先找个位数,在个位数加1,如果个位数为9,则需要进位,个位数为0,继续找前一位加1。继续做相同的判断,直到进位至最高位还需进位的情况,这种情况只存在一种现象:数组中的每一位都为9,此时需要重新定义一个数组,数组的长度比原数组多1,该数组的第一位为1,其余为0。
如果还有更好的方法还希望能够交流。
class Solution {
public int[] plusOne(int[] digits) {
for(int i = digits.length - 1; i >= 0; i--){
if(digits[i] < 9){
digits[i] += 1;
return digits;
}
digits[i] = 0;
}
int[] result = new int[digits.length+1];
result[0] = 1;
return result;
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。