LeetCode 349 Intersection of Two Arrays
来源:互联网 发布:2016淘宝客pid怎么看 编辑:程序博客网 时间:2024/05/18 00:37
Given two arrays, write a function to compute their intersection.
Example:
Given nums1 = [1, 2, 2, 1]
, nums2 = [2, 2]
, return [2]
.
Note:
- Each element in the result must be unique.
- The result can be in any order.
方法一:使用set
public int[] intersection(int[] nums1, int[] nums2) {Set<Integer> set = new HashSet<Integer>();for (int i = 0; i < nums1.length; i++)set.add(nums1[i]);int[] result = new int[nums2.length];int k = 0;for (int i = 0; i < nums2.length; i++)if (set.contains(nums2[i])) {result[k++] = nums2[i];set.remove(nums2[i]); //一定要删除}return Arrays.copyOfRange(result, 0, k);}
方法二:先排序,比方法一效率略高。因为方法一里,for循环调用HashSet.contains( ),而HashSet.contains( )效率并不是O(1)。
public int[] intersection2(int[] nums1, int[] nums2) {Arrays.sort(nums1);Arrays.sort(nums2);int[] result = new int[nums2.length];int i = 0, j = 0, k = 0;while (i < nums1.length && j < nums2.length) {if (nums1[i] < nums2[j]) {i++;} else if (nums1[i] > nums2[j]) {j++;} else {result[k++] = nums1[i++];while (i < nums1.length && nums1[i] == nums2[j]) i++;j++;}}return Arrays.copyOfRange(result, 0, k);}
1 0
- Leetcode-349 Intersection of Two Arrays
- leetcode 349 Intersection of Two Arrays C++
- LeetCode 349 Intersection of Two Arrays
- LeetCode-349&350.Intersection of Two Arrays
- LeetCode-349 Intersection of Two Arrays
- leetcode-Intersection of Two Arrays-349
- LeetCode 349 Intersection of Two Arrays
- LeetCode#349 Intersection of Two Arrays
- LeetCode(349)Intersection of Two Arrays
- [LeetCode]349 Intersection of Two Arrays
- [LeetCode-349] Intersection of Two Arrays(java)
- Leetcode 349 Intersection of Two Arrays
- LeetCode No.349 Intersection of Two Arrays
- leetcode-349-Intersection of Two Arrays
- [Leetcode 349]Intersection of Two Arrays
- leetcode 349 Intersection of Two Arrays
- Leetcode #349 Intersection of Two Arrays
- LeetCode 349 Intersection of Two Arrays
- Uva 101 The blocks problem
- UVA 12656 Almost Palindrome
- linux驱动---用I/O命令访问PCI总线设备配置空间
- css reset
- 引水工程 河南省ACM2015年省赛D 题(最小生成树)
- LeetCode 349 Intersection of Two Arrays
- spring 整合maven 定时任务调度
- Android 拍照、选择图片并裁剪
- 深度卷积网络CNN与图像语义分割
- css定位
- VirtualBox 官网下载+安装(win7)
- VMware12+Ubuntu16.04 安装 以及全屏的实现
- Android N的介绍
- c++ primer(第五版)学习笔记及习题答案代码版(第十一章)关联容器