加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
43_多个数组求交集.html 1.44 KB
一键复制 编辑 原始数据 按行查看 历史
Sakana 提交于 2022-08-07 15:58 . feat 多个数组求交集
<script>
// 给你一个二维整数数组 nums ,其中 nums[i] 是由 不同 正整数组成的一个非空数组,按 升序排列 返回一个数组,数组中的每个元素在 nums 所有数组 中都出现过。
// 来源:力扣(LeetCode)
// 链接:https://leetcode.cn/problems/intersection-of-multiple-arrays
// 输入: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] 。
/**
* map思路做
* 记录每次数字出现次数
* 然后 判断 如果出现的次数 和 nums长度相同的话 就push进res
* 最后要做一下排序 否侧不会通过
*/
var nums = [
[3, 1, 2, 4, 5],
[1, 2, 3, 4],
[3, 4, 5, 6],
];
/**
* @param {number[][]} nums
* @return {number[]}
*/
var intersection = function (nums) {
let res = [];
let map = new Map();
for (let i = 0; i < nums.length; i++) {
for (let j = 0; j < nums[i].length; j++) {
if (map.has(nums[i][j])) {
var vlaue = map.get(nums[i][j]);
map.set(nums[i][j], ++vlaue);
} else {
map.set(nums[i][j], 1);
}
}
}
Array.from(map.keys()).forEach((item) => {
if (map.get(item) === nums.length) {
res.push(item);
}
});
return res.sort((a, b) => a - b);
};
</script>
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化