数据结构求两数组并集二路归并

数据结构内容,求两个数组的并集用二路归并法和顺序表,我求出来的并集是有重复数字。

img

import java.util.ArrayList;

public class Main {
    public static ArrayList<Integer> merge2(ArrayList<Integer> A, ArrayList<Integer> B) {
        ArrayList<Integer> result = new ArrayList<>();
        int i = 0, j = 0;
        while (i < A.size() && j < B.size()) {
            if (A.get(i) < B.get(j)) {
                result.add(A.get(i));
                i++;
            } else if (A.get(i) > B.get(j)) {
                result.add(B.get(j));
                j++;
            } else {
                result.add(A.get(i));
                i++;
                j++;
            }
        }
        while (i < A.size()) {
            result.add(A.get(i));
            i++;
        }
        while (j < B.size()) {
            result.add(B.get(j));
            j++;
        }
        // 去重
        ArrayList<Integer> finalResult = new ArrayList<>();
        finalResult.add(result.get(0));
        for (int k = 1; k < result.size(); k++) {
            if (!result.get(k).equals(result.get(k-1))) {
                finalResult.add(result.get(k));
            }
        }
        return finalResult;
    }

    public static void main(String[] args) {
        ArrayList<Integer> A = new ArrayList<>();
        A.add(1);
        A.add(3);
        A.add(3);
        A.add(5);
        ArrayList<Integer> B = new ArrayList<>();
        B.add(2);
        B.add(3);
        B.add(4);
        B.add(6);
        System.out.println(merge2(A, B));
    }
}


不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^