349. Intersection of Two Arrays --双指针、字典、二分查找、集合
来源:互联网 发布:中国吸血鬼网络剧 编辑:程序博客网 时间:2024/05/16 19:21
349. Intersection of Two Arrays
很经典的题目,可以使用双指针、字典、二分查找、集合来实现
Given two arrays, write a function to compute their intersection.Example:Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].
Solution 1:use set operation in python, one-line solution.class Solution(object):def intersection(self, nums1, nums2): """ :type nums1: List[int] :type nums2: List[int] :rtype: List[int] """ return list(set(nums1) & set(nums2))Solution 2:brute-force searching, search each element of the first list in the second list. (to be more efficient, you can sort the second list and use binary search to accelerate)class Solution(object):def intersection(self, nums1, nums2): """ :type nums1: List[int] :type nums2: List[int] :rtype: List[int] """ res = [] for i in nums1: if i not in res and i in nums2: res.append(i) return resSolution 3:use dict/hashmap to record all nums appeared in the first list, and then check if there are nums in the second list have appeared in the map.class Solution(object):def intersection(self, nums1, nums2): """ :type nums1: List[int] :type nums2: List[int] :rtype: List[int] """ res = [] map = {} for i in nums1: map[i] = map[i]+1 if i in map else 1 for j in nums2: if j in map and map[j] > 0: res.append(j) map[j] = 0 return resSolution 4:sort the two list, and use two pointer to search in the lists to find common elements.class Solution(object):def intersection(self, nums1, nums2): """ :type nums1: List[int] :type nums2: List[int] :rtype: List[int] """ res = [] nums1.sort() nums2.sort() i = j = 0 while (i < len(nums1) and j < len(nums2)): if nums1[i] > nums2[j]: j += 1 elif nums1[i] < nums2[j]: i += 1 else: if not (len(res) and nums1[i] == res[len(res)-1]): res.append(nums1[i]) i += 1 j += 1 return res
0 0
- 349. Intersection of Two Arrays --双指针、字典、二分查找、集合
- 350. Intersection of Two Arrays II -- 双指针、哈希表、排序、二分搜索
- 349. Intersection of Two Arrays
- 349. Intersection of Two Arrays[][
- 349. Intersection of Two Arrays
- 349. Intersection of Two Arrays
- 349. Intersection of Two Arrays
- 349. Intersection of Two Arrays
- 349. Intersection of Two Arrays
- 349. Intersection of Two Arrays
- 349. Intersection of Two Arrays
- 349. Intersection of Two Arrays
- 349. Intersection of Two Arrays
- 349. Intersection of Two Arrays
- 349. Intersection of Two Arrays
- 349. Intersection of Two Arrays
- 349. Intersection of Two Arrays
- 349. Intersection of Two Arrays
- Android中内存泄漏的原因及消除内存泄漏的方法
- ViewPager实现广告条自动滑动
- 自定义控件之Paint的使用
- 即拿即用-App启动优化最佳实践
- EXCLE.随笔
- 349. Intersection of Two Arrays --双指针、字典、二分查找、集合
- 自定义View继承现有的Toast,实现订单提醒的Toast,从左下角显示然后退出
- 自定义Dialog
- 伯努利分布、二项分布、多项分布、Beta分布、Dirichlet分布、连续分布(正态分布)、大数定理、中心极限定理、贝叶斯理论
- python学习笔记6-socket
- 自定义控件之shader的使用
- Window环境下搭建Vue.js开发环境
- nodejs-第二天,nodeAPI-URL/querystring/HTTP/events/fs
- Unix网络编程之同步/异步/阻塞/非阻塞