首页 > 编程语言 >求两数组交集的两种算法

求两数组交集的两种算法

时间:2022-10-27 17:03:03浏览次数:47  
标签:arr obj 交集 ++ 算法 数组 var nums1 nums2

//方法一:用哈希表的思路,将数组转换为对象 var intersect1 = function (nums1, nums2) {     let obj = {}, arr = [];     for (let i = 0; i < nums1.length; i++){         if (obj[nums1[i]]) obj[nums1[i]] += 1;         else obj[nums1[i]] = 1     }     for (let j = 0; j < nums2.length; j++){         if (obj[nums2[j]]) {             obj[nums2[j]]--;             arr.push(nums2[j])         }     }     return arr }   //方法二:先排序后比较 function fn(a, b) {     return a - b; } var intersect2 = function(nums1, nums2) {     var arr = [];     nums1.sort(fn);     nums2.sort(fn);     var i = 0, j = 0;     while (i < nums1.length && j < nums2.length) {         if (nums1[i] < nums2[j]) {             i++;         } else if (nums1[i] > nums2[j]) {             j++;         } else if(nums1[i] == nums2[j]){             arr.push(nums1[i])             i++;             j++;         }     }     return arr; }; const nums1 = [1, 2, 2, 1], nums2 = [2, 2]; const newArr = intersect1(nums1, nums2) console.log(newArr) //  [2,2]    

标签:arr,obj,交集,++,算法,数组,var,nums1,nums2
From: https://www.cnblogs.com/daniller/p/16832845.html

相关文章

  • *PAT_甲级_1053 Path of Equal Weight (30分) (C++)【数组排序/DFS】
    目录​​1,题目描述​​​​ 题目大意​​​​输入​​​​输出​​​​2,思路​​​​数据结构 ​​​​如何排序 ​​​​如何设计DFS算法​​​​3,心路历程​​​​4,代......
  • 数据结构与算法分析——第七章 排序
    注:发此文谨以记录初学《数据结构与算法分析——C语言描述》的个人理解,希望能够得到宝贵意见与建议。(文中转载有相关文章片段,在学习时帮助理解作用较大,在此对作者表示感谢)7.1......
  • *PAT_甲级_1033 To Fill or Not to Fill (25分) (C++)【贪心算法】
    目录​​1,题目描述​​​​题目大意​​​​输入​​​​输出​​​​说明​​​​2,思路​​​​数据结构​​​​算法​​​​3,代码​​1,题目描述SampleInput1:5013001......
  • 力扣-4-寻找两个正序数组的中位数
    中位数的定义是什么?有序数列中位置中间的数字如果中间位置有两个返回则他们的平均值,所以这里的返回值是个double要求时间复杂度为log(m+n),也就是说只对两个数组做一次遍......
  • K 近邻算法 K-NearestNeighbor
    目录理论算法KD树构造搜索实现应用鸢尾花数据集观测数据应用算法二维图像实例一维数据实例参考书目及网站理论K-NN,即k近邻算法,是一种基本的分类和回归的算法,其主要思......
  • js实现字符串数组转换成数字数组的几种方式
      参考:https://blog.csdn.net/sumimg/article/details/114314438......
  • python | 算法-最短路径-dijikstra改进算法
    写在前面:我自己用python练习算法与数据结构的典型算法汇总在这里:汇总-算法与数据结构-python版,欢迎翻阅!1️⃣参考链接:https://github.com/algorithmzuo/algorithmbasic......
  • 二维数组叠加:channels_first与channels_last互转
    在表示一组彩色图片的问题上,Theano和Caffe使用​​(样本数,通道数,行或称为高,列或称为宽)​​​通道在前的方式,称为channels_first;而TensorFlow使用​​(样本数,行或称为高,列或称......
  • 留言+验证--存储数据库(数组)
    效果图:  前端页面:<divclass="contact-right"><h2>合作意向表/<span>COOPERATIONINTENTIONFORM</span></h2>......
  • C# 实现排序算法
    C#实现各种排序每种排序的要点和实现目录C#实现各种排序冒泡排序选择排序插入排序希尔排序堆排序归并排序快速排序文章中参数Func<T,T,bool>comp的意思是:排序后对于......