题目
难度:简单
思路
利用哈希,构建哈希字典,dict{key,value}。
- 初始化nums[0]->哈希字典value值为len(nums)-1;
- 遍历nums[1:],当num in nums,dict[num]-1,表示出现一次交集;
- 遍历结束,判断dict[i]==0,成立则表示为该多维数组的交集,i即为key值,放入新的list;
- 升序输出,return sorted(list)
代码
class Solution(object):
def intersection(self, nums):
"""
:type nums: List[List[int]]
:rtype: List[int]
"""
# python中的hash表-字典{},列表[]
dict={}
list=[]
#构建字典,并初始化value=len(nums)-1
# dict_num[[3:4],[1:4],[2:4],[4:4],[5:4]] //dict_num[key,value]
for num in nums[0]:
dict[num]=len(nums)-1
#判断交集
for num_list in nums[1:]:# 行list
for num in num_list: #依次遍历num_list里的值
#找到交集,通过key找到value:dict_num[key]=>dict_num.value,令value-1
if num in dict:
dict[num]-=1
for i in dict:
if dict[i]==0:
list.append(i)
return sorted(list)
补充
sort 与 sorted 区别:
- sort 是应用在 list 上的方法,属于列表的成员方法,sorted 可以对所有可迭代的对象进行排序操作。
- list 的 sort方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
- sort使用方法为list.sort(),而sorted使用方法为sorted(list)