free-programming-books icon indicating copy to clipboard operation
free-programming-books copied to clipboard

Array-解题:两个数组的交集(NO.349)

Open meibin08 opened this issue 5 years ago • 1 comments

给定两个数组,编写一个函数来计算它们的交集。

  • 示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2]
  • 示例 2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [9,4]
  • 说明:

输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。

前端面试进阶题库

原题链接:力扣(LeetCode)349. 两个数组的交集

meibin08 avatar Mar 17 '20 13:03 meibin08

解题思路

  • mapnums1,与nums2进行比较,
  • 只要nums2里有的,则存起来,
  • 最后对结果进行去重

代码

/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
 */
var intersection = function(nums1, nums2) {
  let result =[];
  nums1.map((k)=>{
    let index = nums2.findIndex(d=>d==k);
    if(index>=0){
      nums2.splice(index,1);
      result.push(k);
    }
    return k;
  });
  return [...new Set(result)];
};

码农进阶题库 - 每天一个JavaScript小知识@Js中文网

meibin08 avatar Mar 17 '20 13:03 meibin08