zoukankan      html  css  js  c++  java
  • 两个数组的交集 II [JS]


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

    示例 1:

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

    示例 2:

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

    说明:

    • 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。
    • 我们可以不考虑输出结果的顺序。

    进阶:

    • 如果给定的数组已经排好序呢?你将如何优化你的算法?
    • 如果 nums1 的大小比 nums2 小很多,哪种方法更优?
    • 如果 nums2 的元素存储在磁盘上,磁盘内存是有限的,并且你不能一次加载所有的元素到内存中,你该怎么办?


      语言:JavaScript
       1 /**
       2  * @param {number[]} nums1
       3  * @param {number[]} nums2
       4  * @return {number[]}
       5  */
       6 var intersect = function(nums1, nums2) {
       7 
       8     let i = j = 0,
       9         len1 = nums1.length,
      10         len2 = nums2.length,
      11         newArr = [];
      12     
      13     if( len1 === 0 || len2 === 0 ){
      14         return newArr;
      15     }
      16     
      17     nums1.sort(function(a,b){
      18         return a - b;
      19     });
      20     nums2.sort(function(a,b){
      21         return a - b;
      22     });
      23     
      24     while( i < len1 || j < len2 ){
      25         if( nums1[i] > nums2[j] ){
      26             j ++;
      27         }else if( nums1[i] < nums2[j] ){
      28             i ++;
      29         }else{
      30             
      31             if(nums1[i] === nums2[j]){
      32                 newArr.push( nums1[i] );
      33             }
      34 
      35             if( i < len1 - 1 ){
      36                 i ++;
      37             }else{
      38                 break;
      39             }
      40 
      41             if( j < len2 - 1 ){
      42                 j ++;
      43             }else{
      44                 break;
      45             }
      46         }        
      47     } 
      49     return newArr;
      50 };
  • 相关阅读:
    【VUE】5.路由导航守卫
    【VUE】4.配置axios发起请求
    【VUE】3.表单操作
    【GIT】命令笔记
    【VUE】2.渲染组件&重定向路由
    【Vue】1.前端项目初始化
    【PYTHON】操作excel笔记
    【Python】python 入门与进阶
    【flask-migrate】:ERROR [root] Error: Target database is not up to date.
    【Flask】学习笔记(一)入门
  • 原文地址:https://www.cnblogs.com/Happymoney/p/9903139.html
Copyright © 2011-2022 走看看