资讯专栏INFORMATION COLUMN

【刷算法】LeetCode.350-两个数组的交集 II

printempw / 3003人阅读

摘要:数据结构给定两个数组,编写一个函数来计算它们的交集。示例输入输出示例输入输出说明输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。我们可以不考虑输出结果的顺序。

数据结构

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

示例 1:

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

示例 2:

输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [4,9]

说明:

输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。
我们可以不考虑输出结果的顺序。
代码实现
/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
 */
var intersect = function(nums1, nums2) {
    if(nums1.length === 0 || nums2.length === 0)
      return [];
  
    let arr1, arr2;
    let map = {};
    let res = [];
  
    if(nums1.length > nums2.length) {
      arr1 = nums2;
      arr2 = nums1;
    } else {
      arr1 = nums1;
      arr2 = nums2;
    }
  
    for(let i = 0;i < arr1.length;i++) {
      if(map[arr1[i]] === void 0)
        map[arr1[i]] = 1;
      else
        map[arr1[i]]++;
    }
  
    for(let i = 0;i < arr2.length;i++) {
      if(map[arr2[i]] !== void 0) {
        if(map[arr2[i]] > 0){
          res.push(arr2[i]);
          map[arr2[i]]--;
        }
      }
    }
  
    return res;
};

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/97523.html

相关文章

  • LeetCode 350. Intersection of Two Arrays II

    摘要:描述给定两个数组,编写一个函数来计算它们的交集。示例输入输出示例输入输出说明输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。我们可以不考虑输出结果的顺序。思路对数组进行排序。如果所在的元素大,则向后走一步。 Description Given two arrays, write a function to compute their intersection. Exa...

    余学文 评论0 收藏0
  • LeetCode】初级算法-两个数组交集 II

    摘要:题目描述两个数组的交集给定两个数组,编写一个函数来计算它们的交集。示例输入输出示例输入输出说明输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。我们可以不考虑输出结果的顺序。 题目描述 两个数组的交集 II给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: ...

    wind3110991 评论0 收藏0
  • LeetCode】贪心算法--买卖股票最佳时机 II(122)

    摘要:贪心算法每一步必须满足一下条件可行的即它必须满足问题的约束。四题目分析贪心算法,总是做出在当前看来是最好的选择,不从整体最优上加以考虑,也就是说,只关心当前最优解,按照贪心策略,不关心以后,我们只关心当前利益。 一、写在前面 为什么要在LeetCode刷题?大家都知道不管是校招还是社招算法题是必考题,而这一部分恰巧是大多数人的短板,所以刷题首先是为了提高自身的编程能力,能够在算法面试中...

    xbynet 评论0 收藏0
  • 小李飞刀:做题第十一弹!

    摘要:第五题对称二叉树难度简单给定一个二叉树,检查它是否是镜像对称的。第十六题最大连续的个数难度简单给定一个二进制数组,计算其中最大连续的个数。第十八题平方数之和难度简单给定一个非负整数,你要判断是否存在两个整数和,使得。 写在前面 最近忙着调教新装备,没有及时的写题解,但是没有在偷懒没刷题喔~来认真整理下最近做的题目~ 之前考虑按tag来刷题,后来收到了推荐的leetcode题解,就根据上...

    ytwman 评论0 收藏0
  • LeetCode 攻略 - 2019 年 7 月下半月汇总(100 题攻略)

    摘要:月下半旬攻略道题,目前已攻略题。目前简单难度攻略已经到题,所以后面会调整自己,在刷算法与数据结构的同时,攻略中等难度的题目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道题,目前已攻略 100 题。 一 目录 不折腾的前端,和咸鱼有什么区别...

    tain335 评论0 收藏0

发表评论

0条评论

printempw

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<