给定两个数组,编写一个函数来计算它们的交集。

示例 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 的元素存储在磁盘上,磁盘内存是有限的,并且你不能一次加载所有的元素到内存中,你该怎么办?

这题比较简单,在不考虑进阶的做法下,使用map可以解决问题。

代码如下:

 class Solution {
public int[] intersect(int[] nums1, int[] nums2) {
Map<Integer, Integer> map=new HashMap<>();
List<Integer> list=new ArrayList<>();
for (int i : nums1) {
if(!map.containsKey(i))
map.put(i, 1);
else
map.put(i, map.get(i)+1);
}
for (int i : nums2) {
if(map.containsKey(i) && map.get(i)!=0)
{
list.add(i);
map.put(i, map.get(i)-1);
}
}
int[] ans=new int[list.size()];
int index=0;
for (Integer i : list) {
ans[index++]=i;
}
return ans;
}
}

最新文章

  1. oracle 参考
  2. SQL 一条SQL语句 统计 各班总人数,男女各总人数 ,各自 男女 比例 (转)
  3. Android ViewPager再探:增加滑动指示条
  4. ACM 另一种阶乘问题
  5. 记一次PHP“Segmentation fault”调试经历
  6. UVa 1347 Tour
  7. JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记2
  8. MVC 过滤
  9. Mysql删除数据后磁盘空间未释放的解决办法【转】
  10. 对象序列化 输入输出流概念 InputOutStream OutputStream
  11. ZOJ2334 Monkey King 并查集 STL
  12. 华为模拟器eNSP安装(最新)网络工程师必备!
  13. ASP.NET Core 快速入门(实战篇)
  14. 服务器Nginx 反向代理 其他服务器 8181端口 失败的问题
  15. Delphi Redis Client
  16. rs232接口定义
  17. 如何打jar包
  18. 用户输入序号选择商品,按q退出
  19. 自动发现项目中的所有URL
  20. laravel5 session的基本使用

热门文章

  1. Catalan数的理解
  2. vue-cli添加bootstrap
  3. cacti1.2.7安装教程+Centos7|Cacti1.2.x+Centos7+Spine1.2.7零基础手把手教学
  4. MUI错误信息:系统已经存在较高版本,些安装包无法安装。
  5. mui iOS云打包修改权限提示语
  6. Docker 从入门到掉坑
  7. 配置Docker镜像加速
  8. MAVEN(一) 安装和环境变量配置
  9. 20191106-使用pyttsx对文本进行语音输出
  10. Visual Studio Online 的 FAQ:iPad 支持、自托管环境、Web 版 VS Code、Azure 账号等