066 Plus One

给定一个非负整数组成的非空数组,给整数加一。
可以假设整数不包含任何前导零,除了数字0本身。
最高位数字存放在列表的首位。
详见:https://leetcode.com/problems/plus-one/description/

Java实现:

方法一:

class Solution {
    public int[] plusOne(int[] digits) {
        int size=digits.length;
        if(size==0||digits==null){
            return null;
        }
        for(int i=size-1;i>=0;--i){
            if(digits[i]==9){
                digits[i]=0;
            }else{
                digits[i]=digits[i]+1;
                return digits;
            }
        }
        if(digits[0]==0){
            int[] res=new int[size+1];
            res[0]=1;
            for(int i=0;i<size;++i){
                res[i+1]=digits[i];
            }
            return res;
        }
        return digits;
    }
}

方法二:

class Solution {
    public int[] plusOne(int[] digits) {
        int size=digits.length;
        if(size==0||digits==null){
            return null;
        }
        int n=1;
        for(int i=size-1;i>=0;--i){
            int a=digits[i]+n;
            digits[i]=a%10;
            n=a/10;
        }
        if(n==1){
            int[] res=new int[size+1];
            res[0]=1;
            for(int i=0;i<size;++i){
                res[i+1]=digits[i];
            }
            return res;
        }
        return digits;
    }
}

参考:https://www.cnblogs.com/grandyang/p/4079357.html

原文地址:https://www.cnblogs.com/xidian2014/p/8707596.html