不爱学Java的小菜 2023-04-01 23:45 采纳率: 60%
浏览 18
已结题

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

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

img

  • 写回答

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条)

报告相同问题?

问题事件

  • 系统已结题 4月10日
  • 已采纳回答 4月2日
  • 创建了问题 4月1日

悬赏问题

  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan