[LeetCode] NO. 66 Plus One

[题目] 

Given a non-negative number represented as an array of digits, plus one to the number.

The digits are stored such that the most significant digit is at the head of the list.

 

[题目解析] 用一个数组表示一个非负数,然后进行加1的操作,数组第一位是最高位。题目比较简单,我们考虑只有某一位为9并且有进位的情况下,该位会变成0,然后进位,否则就直接该位进行+1操作即可。

当所有位都是9的特殊情况下,要特别处理一下,具体代码如下。

    

  public int[] plusOne(int[] digits) {
        int flag = 1;
        int len = digits.length;
        int []ret = new int[len+1];
        for(int i = len-1; i >= 0; i--){
            if(digits[i] == 9){
                digits[i] = 0;
            }else{
                digits[i]++;
                return digits;
            }
        }
        ret[0] = 1;
        return ret;
  }

  

posted @ 2016-09-29 16:55  三刀  阅读(171)  评论(0编辑  收藏  举报