Microsoft - Union Two Sorted List with Distinct Value

Union Two Sorted List with Distinct Value

 

  • Given X = { 10, 12, 16, 20 } &  Y = {12, 18, 20, 22}
  • We would like to find out the union of two sorted arrays.
  • Union of X U Y is {10, 12, 16, 18, 20, 22}

 

Array:

    public static List<Integer> unionTwoSortedArray(int[] arr1, int[] arr2){
        int len1 = arr1.length;
        int len2 = arr2.length;
        int i = 0;
        int j = 0;
        List<Integer> list = new ArrayList<>();
        while(i<len1 && j<len2){
            if(arr1[i] < arr2[j]){
                list.add(arr1[i]);
                i++;
            }
            else if(arr1[i] > arr2[j]){
                list.add(arr2[j]);
                j++;
            }
            else{
                list.add(arr2[j]);
                i++;
                j++;
            }
        }
        while(i<len1){
            list.add(arr1[i]);
            i++;
        }
        while(j<len2){
            list.add(arr2[j]);
            j++;
        }
        return list;
    }

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325033565&siteId=291194637