Java教程

66. Plus One

本文主要是介绍66. Plus One,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

My first solution:

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

The smarter solution and shorter solution:

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

 

这篇关于66. Plus One的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!