Add One To Number

Given a non-negative number represented as an array of digits,

add 1 to the number ( increment the number represented by the digits ).

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

Example:

If the vector has [1, 2, 3]

the returned vector should be [1, 2, 4]

as 123 + 1 = 124.

NOTE: Certain things are intentionally left unclear in this question which you should practice asking the interviewer. For example, for this problem, following are some good questions to ask :

  • Q : Can the input have 0’s before the most significant digit. Or in other words, is 0 1 2 3 a valid input?

  • A : For the purpose of this question, YES

  • Q : Can the output have 0’s before the most significant digit? Or in other words, is 0 1 2 4 a valid output?

  • A : For the purpose of this question, NO. Even if the input has zeroes before the most significant digit.

public class Solution {
    public ArrayList<Integer> plusOne(ArrayList<Integer> A) {
        ArrayList<Integer> t=new ArrayList<>();
        int carry=1;
        for(int j=A.size()-1;j>=0;j--){
            int num=A.get(j)+carry;
            carry=num/10;
            num=num%10;
            t.add(0,num);
        }
        if(carry==1){
            t.add(0,1);
        }
        ArrayList<Integer> ans=new ArrayList<>();
        boolean flag=true;
        for(int i=0;i<t.size();i++){
            if(flag && t.get(i)==0){
                
            }
            else{
                flag=false;
                ans.add(t.get(i));
            }
        }
        return ans;
    }
}

Last updated