「每日LeetCode」2022年5月13日

本文最后更新于:2023年3月19日 晚上

2248.多个数组求交集

2248.多个数组求交集

Category Difficulty Likes Dislikes
algorithms Easy (67.77%) 12 -

Tags
Companies
给你一个二维整数数组 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 中每个数组中都出现的数字是 3 和 4 ,所以返回 [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] 中的所有值 互不相同

Discussion | Solution

思路

按题意模拟即可

解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*
* @lc app=leetcode.cn id=2248 lang=javascript
*
* [2248] 多个数组求交集
*/

// @lc code=start
/**
* @param {number[][]} nums
* @return {number[]}
*/
var intersection = function (nums) {
const res = new Set(nums[0]);
for (let i = 1; i < nums.length; i++) {
const element = nums[i];
for (const item of res) {
if (!element.includes(item)) {
res.delete(item);
}
}
}
return [...res.values()].sort((a, b) => +a - +b);
};
// @lc code=end