LeetCode Plus One: Math Array Simulation

Overview

LeetCode Plus One: Math Simulation of plus one by array, just simulate the process of adding one and handle both sum and carry carefully.

LeetCode Plus One

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

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

Solution and Precautions: Math Array Simulation 

This is quite a simple problem of simulating the plus operation, just practice your knowledge of how to do addition (carry, digit concepts) and don’t forget special case like 999+1 = 10000. The following java code is accepted by the LeetCode OJ to pass this Plus One problem:

public class Solution {

    public int[] plusOne(int[] digits) {
        List<Integer> ret = new ArrayList<Integer>();
        int sum = 0;
        int carry = 1;

        int n = digits.length;

        for (int i = n - 1; i >= 0; --i) {
            sum = digits[i] + carry;
            carry = sum / 10;
            sum %= 10;
            ret.add(sum);
        }

        if (carry > 0)
            ret.add(carry);
        Collections.reverse(ret);
        int [] results = new int[ret.size()];

        for (int i = ret.size() - 1; i >= 0; --i)
            results[i] = ret[i].intValue();

        return results;
    }
}

Summary

LeetCode Plus One: Math Simulation of plus one by array, just simulate the process of adding one and handle both sum and carry carefully.

Written on April 18, 2013