有序數組求並集(無重複元素)

結合網上的解法,本身稍加修改,話很少說,直接輸出。測試

public class MergeSortArrays {
    public static int[]  merge(int [] num1,int [] num2){
        int[] result=new int[num1.length+num2.length];
        int i=0,j=0,k=0;
        while(i<num1.length && j< num2.length){
            if(num1[i]<=num2[j]){
                if(k>=1 && result[k-1] == num1[i]){
                    i++;
                    continue;
                }
                result[k]=num1[i];
                i++;
                k++;
            } else {
                if(k>=1 && result[k-1] == num2[j]){
                    j++;
                    continue;
                }
                result[k]=num2[j];
                k++;
                j++;
            }
        }
        while(i<num1.length){
            if(k>=1 && result[k-1] == num1[i]){
                i++;
                continue;
            }
            result[k]=num1[i];
            i++;
            k++;
        }
        while(j<num2.length){
            if(k>=1 && result[k-1] == num2[j]){
                j++;
                continue;
            }
            result[k]=num2[j];
            j++;
            k++;
        }
        return Arrays.copyOf(result,k);
    }

    public static void main(String[] args) {
        int[] a = {1,1,2,5,9,50};
        int[] b = {1,2,2,3,4,6,8,9,10,10,60};
        System.out.println(JSON.toJSONString(merge(a,b)));
    }
}

通過測試,能夠正常運行。歡迎留言交流!code

相關文章
相關標籤/搜索