두 배열 의 교 집합 을 구하 다 자바

public static int[] intersect(int[] num1, int[] num2){
    if (num1 == null) return num1;
    if (num2 == null) return num2;
    Arrays.sort(num1);
    Arrays.sort(num2);
    int i = 0, j = 0, k = 0;
    while (i < num1.length && j < num2.length){
        if (num1[i] < num2[j]){
            i++;
        }
        else if (num1[i] > num2[j]){
            j++;
        }
        else{
            num1[k++] = num1[i];
            i++;
            j++;
        }
    }
    return Arrays.copyOfRange(num1, 0, k);
}

좋은 웹페이지 즐겨찾기