wayetan
12/30/2013 - 12:17 AM

Plus One

Plus One

/**
 * Given a number represented as an array of digits, plus one to the number.
 */
 public class Solution {
    public int[] plusOne(int[] digits) {
        int carry = 0;
        int len = digits.length - 1;
        digits[len] += 1;
        while(len >= 0){
            digits[len] = digits[len] + carry;
            if(digits[len] >= 10){
                carry = 1;
                digits[len] -= 10;
            }else
                carry = 0;
            len--;
        }
        if(carry == 1){
            int[] res = new int[digits.length + 1];
            res[0] = 1;
            for(int i = 0; i < digits.length; i++){
                res[i + 1] = digits[i];
            }
            return res;
        }
        return digits;
    }
 }