Add two array

add elements of two array

/*
 1 2 3 4 5
     1 5 5
1 2 5 0 0
 */


/*
test case

1 2 3 4 5
1 5 5

result = 13500
min = 3
max = 5
longer = input1
short = input2
carry = 0
sum = 10
carry = 1;
digit = 0;

 */


public class Solution{
    public int[] add(int[] input1, int[] input2) {
        int m = input1.length;
        int n = input2.length;

        int min = Math.min(m, n);
        int max = Math.max(m, n);

        int[] longer;
        int[] shorter;
        if (max == m) {
            longer = input1;
            shorter = input2;
        } else {
            longer = input2;
            shorter = input1;
        }
        int carry = 0;
        ArrayList<Integer> result = new ArrayList<Integer>();


        for (int i = min - 1, j = max - 1; i >= 0; i--) {
            int sum = longer[i] + shorter[i] + carry;
            int digit = sum % 10;
            carry = sum / 10;
            result.add(0, digit);
        }

        for (int i = max - min - 1; i >= 0; i--) {
            int sum = longer[i] + carry;
            int digit = sum % 10;
            carry = sum / 10;
            result.add(0, digit);
        }

        int digit = carry;
        if (digit != 0) {
            result.add(0, digit);
        }

        int size = result.size();
        int[] output = new int[size];
        for (int i = 0; i < size; i++) {
            output[i] = result.get(i);
        }

        return output;

    }
}

results matching ""

    No results matching ""