66. Plus One【leetcode】

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

You may assume the integer do not contain any leading zero, except the number 0 itself.

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

题意:一个整数按位存储于一个int数组中,排列顺序为:最高位在array[0] ,最低位在[n-1],例如:98,存储为:array[0]=9; array[1]=8;
解题思路,从数组的最后一位开始加1,需要考虑进位,如果到[0]位之后仍然有进位存在,需要新开一个长度为(n.length + 1)的数组,拷贝原来的数组

public class Solution {
    public int[] plusOne(int[] digits) {
        int len=digits.length;
        
        int sum=0;
        int carray=1;
        for(int i=len-1;i>=0;i--){
            sum=digits[i]+carray;
            digits[i]=sum%10;
            carray=sum/10;
    
            
        }
        if(carray==0){
            return digits; 
        }
        int [] temp=new int[len+1];
            for(int i=0;i<len;i++){
                temp[i+1]=digits[i];
            }
            temp[0]=1;
        
        return temp;
    }
}

 

posted @ 2017-08-10 23:31  这个手杀不太0  阅读(134)  评论(0编辑  收藏  举报