日渐头秃的代码日记 -- 第290场周赛第1题

121 阅读1分钟

给你一个二维整数数组 nums ,其中 nums[i] 是由 不同 正整数组成的一个非空数组,按 升序排列 返回一个数组,数组中的每个元素在 nums 所有数组 中都出现过。

 

示例 1:

输入: nums = [[3,1,2,4,5],[1,2,3,4],[3,4,5,6]]
输出: [3,4]
解释:
nums[0] = [3,1,2,4,5],nums[1] = [1,2,3,4],nums[2] = [3,4,5,6],在 nums 中每个数组中都出现的数字是 34 ,所以返回 [3,4]

示例 2:

输入: nums = [[1,2,3],[4,5,6]]
输出: []
解释:
不存在同时出现在 nums[0] 和 nums[1] 的整数,所以返回一个空列表 []

 

提示:

  • 1 <= nums.length <= 1000
  • 1 <= sum(nums[i].length) <= 1000
  • 1 <= nums[i][j] <= 1000
  • nums[i] 中的所有值 互不相同

解析: 本题目较为简单,每个nums[i]长度都仅为1000以内,直接用set求结果即可

class Solution:
    def intersection(self, nums: List[List[int]]) -> List[int]:
        res_set = set(nums[0])
        for n in nums:
            res_set = res_set & set(n)
        res = sorted(list(res_set))
        return res