• (day5)350 两个数组的交集 II


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

    示例 1:

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

    示例 2:

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

    思路:

    保存第一个数组每一项作为对象的键, 值是出现的次数

    循环第二个数组, 如果对象键存在并且对象里面保存的次数大于0, 则push到空数组里面, 同时出现的次数减一

    js实现:

    var intersect = function (nums1, nums2) {
          var obj = {}, // 要用到的对象
            saveArr = [];  // 最后的数组
    
          for (let i = 0, len1 = nums1.length; i < len1; i ++) {
            obj[nums1[i]] ? obj[nums1[i]] ++ : obj[nums1[i]] = 1;
          } // 先保存num1里面的元素以及出现的次数
          for (let i = 0, len2 = nums2.length; i < len2; i ++) {
            if (obj[nums2[i]] && obj[nums2[i]] > 0) {
              saveArr.push(nums2[i]);
              obj[nums2[i]]--;
            }
          } // 循环nums2里面的元素, 如果对象里面有, 并且还没有找到一样的元素, 则push到saveArr里面, 同时出现的次数减一
          return saveArr;
        }
     
  • 相关阅读:
    排序
    wine-qq 安装
    逆元模板
    最长上升子序列
    SGU[115] Calendar
    SGU[123] The sum
    SGU[105] Div 3
    SGU[102] Coprimes
    SGU[100] A+B
    poj-1325-Machine Schedule
  • 原文地址:https://www.cnblogs.com/jedenzhan/p/9484217.html
Copyright © 2020-2023  润新知