区块链技术博客
www.b2bchain.cn

两个数组的交集重复,不重复set.map

这篇文章主要介绍了两个数组的交集重复,不重复set.map,通过具体代码讲解7998并且分析了两个数组的交集重复,不重复set.map的详细步骤与相关技巧,需要的朋友可以参考下

本文实例讲述了两个数组的交集重复,不重复set.map。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/7998.html。具体如下:

349. 两个数组的交集

 class Solution {     public int[] intersection(int[] nums1, int[] nums2) {          int len1=nums1.length;         int len2=nums2.length;         List<Integer> ans=new ArrayList<>();         if(len1>len2) return intersection(nums2,nums1);         Set<Integer> myset=new HashSet<>();         for(int num:nums1){             myset.add(num);         }         for(int num:nums2){             if(myset.contains(num)) {                 ans.add(num);                 //需要从set remove                 myset.remove(num);             }         }         int[] arrans=new int[ans.size()];        for(int i=0;i<ans.size();i++){            arrans[i]=ans.get(i);        }        return arrans;     } }

350. 两个数组的交集 II 

 //给定两个数组,编写一个函数来计算它们的交集。  // //  // // 示例 1:  // // 输入:nums1 = [1,2,2,1], nums2 = [2,2] //输出:[2,2] //  // // 示例 2:  // // 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] //输出:[4,9]  // //  // // 说明:  // //  // 输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。  // 我们可以不考虑输出结果的顺序。  //  // // 进阶:  // //  // 如果给定的数组已经排好序呢?你将如何优化你的算法?  // 如果 nums1 的大小比 nums2 小很多,哪种方法更优?  // 如果 nums2 的元素存储在磁盘上,磁盘内存是有限的,并且你不能一次加载所有的元素到内存中,你该怎么办?  //  // Related Topics 排序 哈希表 双指针 二分查找   import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Set;  //leetcode submit region begin(Prohibit modification and deletion) class Solution {     public int[] intersect(int[] nums1, int[] nums2) {        int len1=nums1.length;        int len2=nums2.length;         if(len1>len2) return intersect(nums2,nums1);         List<Integer> ans=new ArrayList<>();         Map<Integer,Integer> mymap=new HashMap<>();         for(int num:nums1){            mymap.put(num,mymap.getOrDefault(num,0)+1);         }         for(int num:nums2){             int count=mymap.getOrDefault(num,0);              if(count>0) {                  ans.add(num);                  mymap.put(num,count-1);              }         }         int[] res=new int[ans.size()];         for(int i=0;i<ans.size();i++)         {             res[i]=ans.get(i);         }         return res;     } } //leetcode submit region end(Prohibit modification and deletion) 

 

本文地址https://www.b2bchain.cn/7998.html

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 两个数组的交集重复,不重复set.map
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们