66. Plus One

QUESTION:

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.

EXPLANATION:

解题思路其实就是一位一位的相加,然后计算进位。

SOLUTION:

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