Find the intersection of two sorted arrays.
OR in other words,
Given 2 sorted arrays, find all the elements which occur in both the arrays.
Example :
Input :
A : [1 2 3 3 4 5 6]
B : [3 3 5]
Output : [3 3 5]
Input :
A : [1 2 3 3 4 5 6]
B : [3 5]
Output : [3 5]
NOTE : For the purpose of this problem ( as also conveyed by the sample case ), assume that elements that appear more than once in both arrays should be included multiple times in the final output.
publicclassSolution {publicArrayList<Integer> intersect(finalList<Integer> A,finalList<Integer> B) {ArrayList<Integer> ans =newArrayList<>();int i =0, j =0;while (i <A.size() && j <B.size()) {if (A.get(i).compareTo(B.get(j)) ==0) {ans.add(A.get(i)); i++; j++; } elseif (A.get(i).compareTo(B.get(j)) <0) i++;else j++; }return ans; }}