数据结构内容,求两个数组的并集用二路归并法和顺序表,我求出来的并集是有重复数字。
2条回答 默认 最新
- threenewbee 2023-04-02 08:01关注
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)); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用