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].

Note:

  • Each element in the result must be unique.
  • The result can be in any order.
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))
# for two set, set1&set2 makes a new set containing the intersection of these two sets,likewise, | makes the union set, and ^ makes the union set with the exception of the intersection elements
# this solution is clear but not fast

350. Intersection of Two Arrays II

Given two arrays, write a function to compute their intersection.

Example:
Given nums1 = [1, 2, 2, 1]nums2 = [2, 2], return [2, 2].

Note:

  • Each element in the result should appear as many times as it shows in both arrays.
  • The result can be in any order.

Follow up:

  • What if the given array is already sorted? How would you optimize your algorithm?
  • What if nums1's size is small compared to nums2's size? Which algorithm is better?
  • What if elements of nums2 are stored on disk, and the memory is limited such that you cannot load all elements into the memory at once?
class Solution(object):
def intersect(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: List[int]
"""
from collections import Counter
c1=Counter(nums1)
c2=Counter(nums2)
return sum([[num]*min(c1[num],c2[num]) for num in c1&c2],[]) # sum([[1,2],[3,4]],[]) makes [1,2,3,4], why???
# Counter(some_list) makes a diction, whose key is the elements of the list and the value is the time it appears in the list
# for two counter, c1&c2 makes the intersection of their keys and the value is always 1

最新文章

  1. iOS中的单例
  2. mybatis sql in 查询
  3. MSDN资料
  4. 10 程序员必备:Linux日常维护命令
  5. 【uva1502/hdu4117-GRE Words】DP+线段树优化+AC自动机
  6. HDU 5620 KK's Steel (斐波那契序列)
  7. POJ 3280 Cheapest Palindrome 简单DP
  8. ref与out之间的区别整理 摘自与望楼http://blog.csdn.net/xiaoning8201/article/details/6893154
  9. ajax遇到的问题
  10. PLSQL 注册码
  11. JAVA对象克隆
  12. [python] 3 、基于串口通信的嵌入式设备上位机自动测试程序框架(简陋框架)
  13. 从 0 → 1,学习Linux该这么开始!
  14. Docker 创建容器 查看容器状态 - 三
  15. hihocoder1696 折线中点(几何)
  16. mysql,Jdbc工具类,只需一条sql实现简单查询
  17. Python: 字典dict: zip()
  18. 修改windows远程默认端口
  19. 实习培训——Servlet(5)
  20. css动画笔记

热门文章

  1. MCV 的几种表单提交方式
  2. Spring 学习之bean的理解
  3. ofbiz研究
  4. LeetCode207 课程表
  5. Docker虚拟化容器的使用
  6. while循环,格式化输出,运算符
  7. composer安装教程(Linux版)
  8. php获取设备的宽度和高度
  9. Python 中关于文件操作的注意事项
  10. Matplotlib 图表的基本参数设置