登录
专栏 1 关注 8 篇文章
JS算法基础篇
最近学的算法基础 , 一起学习一起进步~~
timing
关注专栏
推荐文章
举报
3 年前  /  timing

JS基础算法(数据结构之二叉树篇)

特性一个节点只有两个子节点,左节点和右节点实现二叉树结构// 二叉树的节点class Node {constructor(val) {this.val = valthis.left = this.right = undefined}}class Tree {constructor(data) {// 临时存储所有节点,方便寻找父子节点let nodeList = []// 顶节点let rootfor (let i = 0, len = data.length; i < len; i++) {l

0 赞 0 评论
收藏
3 年前  /  timing

JS基础算法(数据结构之二维矩阵篇)

螺旋矩阵给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[[1, 2, 3, 4],[5, 6, 7, 8],[9,10,11,12]]输出: [1,2,3,4,8,12,11,10,9,5,6,7]拆解成一步一步的,而且要拆成每一步是相同的第一圈是第一行全部,第二行到倒数第二行是第一个和最

0 赞 0 评论
收藏
3 年前  /  timing

JS基础算法(数据结构之链表篇)

数据结构之链表知识点如何手动地创建一个链表的数据结构(NodeList)知道链表如何排序(sort)如何检测链表是否是闭环的概念链表由一系列结点(元素)组成,结点可以在运行时动态生成。每个结点包括两个部分:存储数据元素的数据域和存储下一个结点地址的指针域。链表只暴露一个头指针,后面的元素必须通过头指针不断的next,才能拿到js中没有链表结构数组可以充当队列,可以充当堆栈,但是不能充当链表排序链表在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2

0 赞 0 评论
收藏
3 年前  /  timing

JS基础算法(数据结构之队列篇)

数据结构之队列特殊的线性表,只允许在表的前端删除,表的后端插入(先进先出)设计循环队列设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircularQueue(k):

0 赞 0 评论
收藏
3 年前  /  timing

JS基础算法(数据结构之栈篇)

数据结构之栈栈的概念线性表,运算受限(仅允许一端的插入和删除)棒球比赛你现在是棒球比赛记录员。给定一个字符串列表,每个字符串可以是以下四种类型之一:1.整数(一轮的得分):直接表示您在本轮中获得的积分数。2."+"(一轮的得分):表示本轮获得的得分是前两轮有效 回合得分的总和。3."D"(一轮的得分):表示本轮获得的得分是前一轮有效 回合得分的两倍。4."C"(一个操作,这不是一个回合的分数):表示您获得的最后一个有效 回合的分数是无效的,应该被移除。每一轮的操作都是永久性的,可能会对前一轮和后

0 赞 0 评论
收藏
3 年前  /  timing

JS基础算法(正则表达式 &amp;递归篇)

1.重复的子字符串给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。示例 2:输入: "aba"输出: False示例 3:输入: "abcabcabcabc"输出: True解释: 可由子字符串 "abc" 重复四次构成。 (或者子字符串 "abcabc" 重复两次构成。)用正则去做 /^(\w+)\1+$/即为对应正则表达式exp

0 赞 0 评论
收藏
3 年前  /  timing

JS基础算法(数组篇)

1.公式运算(电话号码的组合)给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. 说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。找出规律:只要前两项合并好,替代原来数组,再继续和后面合并写出程序伪代码export default (str) =>

0 赞 0 评论
收藏
3 年前  /  timing

JS基础算法(字符串篇)

算法考点见多识广(每个类型都要能说出一二三来,具体细节不要纠结)反应迅速(快速用js实现出来栈,队列等)就算立马写不出来,至少快速说出思路基础算法-字符串1.反转字符串中的单词 III给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: "Let's take LeetCode contest" 输出: "s'teL ekat edoCteeL tsetnoc" 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。注意点

0 赞 0 评论
收藏