Skip to content

Latest commit

 

History

History
40 lines (37 loc) · 1.06 KB

350-两个数组的交集II.md

File metadata and controls

40 lines (37 loc) · 1.06 KB

题目描述

两个数组的交集II

题目简述

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

示例 1:

  • 输入:nums1 = [1,2,2,1], nums2 = [2,2]
  • 输出:[2,2]

分类

简单 双指针

思路

思路1

/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
 */
var intersect = function(nums1, nums2) {
  let minNum = nums1.length < nums2.length ? nums1 : nums2
  let maxNum = nums1.length >= nums2.length ? nums1 : nums2
  const res = []
  for (let i = 0 ; i < minNum.length; i ++) {
    let index = maxNum.indexOf(minNum[i])
    // 存在
    if (index !== -1) {
      res.push(minNum[i])
      maxNum.splice(index, 1)
    }
  }
  return res
};
  • 问题分析
    • 这道题思路很简单,对于两个数组arr1arr2,在arr1中遍历每个元素,如果能够在arr2中找到,就说明是交集,把这个元素放到结果数组中,并且在arr2中删除相同元素,避免二次查询到。