![](https://img-blog.csdnimg.cn/c23cb342b176407f9015ff378495a6d8.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JavaScript 数据结构与算法
文章平均质量分 68
sf
gxhlh
智慧的获取,能力的提升,创造力的领悟,是基于长期的投资回报周期。
展开
-
JavaScript 对区间数值冲突情况的一些处理
56. 合并区间 https://leetcode.cn/problems/merge-intervals以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区原创 2022-05-25 08:11:00 · 435 阅读 · 0 评论 -
JavaScript 数组去重
原始方法双层for 循环 – 兼容性好// 测试数组 let arr = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 4, 4, 5, 5, 5]function unique_1(array) { let res = []; // 存储结果 // 第一层 for 循环将取出数组中的每一个值 for (let i = 0; i < array.length; i++) { // 第二层for 循环将 i 与储存结果的数原创 2021-10-21 19:36:04 · 71 阅读 · 0 评论 -
JavaScript 获取N以内的所有素数
获取N以内的所有素数function prime1(n) { let prim = []; if(n === 1){return [1]} if(n === 2){return [1,2]} for (let i = 1; i < n; i++) { let isPrime = true; // 判断当前i 值是否为素数 for (let j = 2; j < i; j++) { //判断原创 2021-10-21 19:58:26 · 1345 阅读 · 0 评论 -
JavaScript 判断一个数是否是素数
判断素数 – 效率极低function isPrime1(num) { if(num == 1 || num == 2) { return true; } for (let i = 1; i < num; i++) { if(num % i == 0){ return false; } return true; }}console.log("isPrime1",isPrime1(2))判断素数优原创 2021-10-21 19:52:16 · 754 阅读 · 0 评论 -
JavaScript 字符串翻转
简单版本function reverse(str) { return str.split('').reverse().join('')}console.log(reverse('12345'))双指针(for循环)let reverseStr = function(str) { let s = str.split('') const n = s.length; for (let left = 0, right = n - 1; left < right;原创 2021-10-21 19:43:53 · 93 阅读 · 0 评论 -
JavaScript 基础算法
算法是描述如何处理某个问题的一系列步骤反转字符串函数的返回结果应为字符串。function reverseString(str) { if (str === "") // This is the terminal case that will end the recursion return ""; else return reverseString(str.substr(1)) + str.charAt(0);}reverseString("hello");计原创 2021-08-12 17:52:28 · 264 阅读 · 0 评论 -
使用递归代替循环
计算数组内元素前 n 的元素乘积循环写法 function multiply(arr, n) { var product = 1; for (var i = 0; i < n; i++) { product *= arr[i]; } return product; }为了更简单的血代码,使用递归代替循环,递归是函数调用自身的操作递归写法,重写 multiply 以调用自身而无需依赖循环 function multiply(arr, n原创 2021-08-10 16:54:17 · 921 阅读 · 0 评论 -
JavaScript 数据结构与算法(递归)
理解递归递归是一种解决问题的方法,它从解决问题的各个小部分开始,直到解决最初的大问题。递归通常涉及函数调用自身。递归函数是像下面这样能够直接调用自身的方法或函数。每个递归函数都必须有基线条件,即一个不再递归调用的条件(停止点),以防止无限递归。function recursiveFunction(someParam) { recursiveFunction(someParam);}能够像下面这样间接调用自身的函数,也是递归函数。function recursiveFunction1(so原创 2021-07-29 16:48:56 · 146 阅读 · 0 评论 -
JavaScript 数据结构与算法(字典)
字典和散列表是用来存储唯一值(不重复的值)的数据结构在集合中,把每个值当作主要元素。在字典(或映射)中,则用[键,值]对的形式来存储数据。在散列表中也是一样(也是以[键,值]对的形式来存储数据)。但是两种数据结构的实现方式略有不同,例如字典中的每个键只能有一个值。字典集合表示一组互不相同的元素(不重复的元素)。在字典中,存储的是[键,值]对,其中键名是用来查询特定元素的。字典和集合很相似,集合以[值,值]的形式存储元素,字典则是以[键,值]的形式来存储元素。字典也称作映射、符号表或关联数组。 在计算机原创 2021-07-28 16:17:27 · 471 阅读 · 0 评论 -
JavaScript 数据结构与算法(集合)
集合,这是一种不允许值重复的顺序数据结构构建数据集合集合是由一组无序且唯一(即不能重复)的项组成的。该数据结构使用了与有限集合相同的数学概念,但应用在计算机科学的数据结构中。在深入学习集合的计算机科学实现之前,我们先看看它的数学概念。在数学中,集合是一组不同对象的集。比如说,一个由大于或等于 0 的整数组成的自然数集合:N = {0, 1, 2, 3, 4, 5, 6, …}。集合中的对象列表用花括号({})包围。还有一个概念叫空集。空集就是不包含任何元素的集合。比如 24 和 29 之间的素数集原创 2021-07-27 16:26:44 · 174 阅读 · 0 评论 -
JavaScript 数据结构与算法(链表)
链表数据结构链表存储有序的元素集合。但不同于数组,链表中的元素在内存中并不是连续放置的。 每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(也称指针或链接)组成。比如:火车,一列火车是由一系列车厢组成的。每节车厢都相互连接。数组(或列表)可能是最常用的数据结构,每种语言都实现了数组数组的缺点:需要连续的内存空间,若申请内存空间很大,比如100M,但若内存空间没有100M的连续空间时,则会申请失败,尽管内存可用空间超过100M。(在大多数语言中)数组的大小是固定的,存储空间不足,需进原创 2021-07-26 18:29:45 · 145 阅读 · 0 评论 -
JavaScript 数据结构与算法(队列)
队列数据结构队列是遵循先进先出(FIFO,也称为先来先服务)原则的一组有序的项。队列在尾部添加新元素,并从顶部移除元素。最新添加的元素必须排在队列的末尾。在现实中,最常见的队列的例子就是排队。创建队列创建自己的类来表示一个队列。首先需要一个用于存储队列中元素的数据结构。可以使用数组,但是,为了写出一个在获取元素时更高效的数据结构,将使用一个对象来存储元素。// 声明类class Queue { constructor() { this.count = 0; // coun原创 2021-07-25 18:05:51 · 105 阅读 · 0 评论 -
JavaScript 数据结构与算法(栈)
栈是一种遵从后进先出(LIFO)原则的有序集合。创建一个基于 JavaScript 数组的 Stack 类声明 Stack 类class Stack { constructor() { this.items = []; // {1} }}向栈添加元素push(element(s)) 添加一个(或几个)新元素到栈顶。push(element) { this.items.push(element);}从栈移除元素pop() 移除栈顶的元素,同原创 2021-07-24 17:30:07 · 741 阅读 · 4 评论 -
JavaScript 数据结构与算法(数组)
创建数组的三种方式1、使用 new 关键字,就能简单地声明并初始化一个数组,用这种方式,还可以创建一个指定长度的数组。2、直接将数组元素作为参数传递给它的构造器3、只用中括号([ ])的形式let daysOfWeek = new Array(); // {1} let daysOfWeek = new Array(7); // {2} let daysOfWeek = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday原创 2021-07-23 18:04:58 · 152 阅读 · 3 评论