数据结构与算法(JS实现)
文章平均质量分 52
JS实现基本的数据结构操作以及算法
丫omi
做一只快乐的前端猿
展开
-
JS解决数组算法的初始定义
移动零给定一个数组 nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]按顺序复制非零元素到原数组中,空位补零//执行用时 :64 ms, 在所有 javascript 提交中击败了97.33%的用户//内存消耗 :35.8...原创 2019-12-26 12:58:58 · 199 阅读 · 1 评论 -
JS查找表和活动窗口
存在重复元素 II给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k示例:输入: nums = [1,2,3,1], k = 3输出: true输入: nums = [1,0,1,1], k = 1输出: true输入: nums = [1,2,3,1,2,3],...原创 2019-12-23 19:14:49 · 239 阅读 · 0 评论 -
JS灵活选择键值
四数相加给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过 231 - 1示例:输入:A = [ 1...原创 2019-12-23 14:46:04 · 225 阅读 · 0 评论 -
JS解决查找表与求和问题
两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]方法...原创 2019-12-20 22:36:50 · 183 阅读 · 0 评论 -
JS实现字典dict的使用
两个数组的交集给定两个数组,编写一个函数来计算它们的交集。输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。我们可以不考虑输出结果的顺序。示例:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]方法一:数组切割处理//...原创 2019-12-18 21:16:41 · 6282 阅读 · 0 评论 -
JS实现集合Set的相关算法
两个数组的交集给定两个数组,编写一个函数来计算它们的交集示例:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。Set和Array//执行用时 :56 ms, 在...原创 2019-12-16 23:58:03 · 210 阅读 · 0 评论 -
递归算法练习JS
反转一个单链表示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL/*var head = { val: 1, next: { val: 2, next: { val: 3, next: null } }}*/方法...原创 2019-12-15 20:45:00 · 504 阅读 · 0 评论 -
JS实现基本数据结构封装
介绍常用的公式等差数列通项: an = a1+(n-1)d等差数列求和: Sn = na1+n(n-1)/2d,n∈N等比数列通项:an = a1qn-1等比数列求和:Sn = a1(1-qn)/1-q (q≠1)数据结构考虑的问题:用什么方式存储组织数据,才能在使用的时候更加方便常见的数据结构:数组、栈、堆、队列、链表、树、图、散列表算法(Algorithm)有限指...原创 2019-12-15 20:42:32 · 385 阅读 · 0 评论