JavaScript算法
作为前端开发者而言,可能不会像后端开发那样遇到很多的算法和数据结构问题,但是不论是做前端、 服务端还是客户端, 任何一个程序员都会开始面对更加复杂的问题, 这个时候算法和数据结构知识就变得不可或缺,它是编程能力中很重要的一部分。
小绵杨Yancy
Trouble is a friend.
展开
-
JavaScript算法实现dfs查找省市区路径
存在如下数组,实现一个算法通过输入区名,返回`省->市->区`格式的路径,例如输入西湖区,返回`浙江省->杭州市->西湖区`。原创 2024-06-16 15:29:39 · 417 阅读 · 4 评论 -
JavaScript算法 — 二叉树遍历
和前序遍历思想相反。先序是使用push往res数组后面加数据,二后序是使用unshift往数组前面加数据。先序:“中 - 左 - 右” 0137849256。中序:“左 - 中 - 右” 7381940526。后序:“右 - 左 - 中” 7839415620。调用递归的位置不同,结果分为三种。原创 2022-11-11 21:00:15 · 3160 阅读 · 1 评论 -
JavaScript数组和树互相转换
先把数据转成Map去存储,之后遍历的同时借助对象的引用,直接从Map找对应的数据做存储。在前端业务场景中,将数组转为树型数据结构说经常会遇到的需求。相比于递归,非递归具有更高的性能。原创 2022-10-11 12:18:48 · 1014 阅读 · 0 评论 -
JavaScript算法 — 零钱兑换问题
背包问题。构造一个初始全是最大值的一维数组dp,dp[i]就代表兑换i元所需要的最少硬币个数。其中j表示当前要使用的硬币面值。原创 2022-09-02 09:00:00 · 592 阅读 · 0 评论 -
JavaScript算法 — 最长公共子序列
典型的动态规划问题,构造二维数组,从左上角到右下角依次对比。原创 2022-08-31 20:47:45 · 379 阅读 · 0 评论 -
JavaScript算法 — 全排列
使用递归的思想,每次递归时,携带上一次的不完整数组,直到数组长度等于参数nums的长度,证明已经排列完了,可以存进结果数组了。类似与二叉树的深度优先遍历(dfs)。原创 2022-09-01 08:00:00 · 180 阅读 · 0 评论 -
Return the next higher prime number
This challenge is a little bit more complexWrite a function that takes a number (a) as argumentIf a is prime, return aIf not, return the next higher prime number原创 2022-08-06 16:31:07 · 105 阅读 · 0 评论 -
js计算数组中每个元素出现的次数
还可以通过遍历数组,然后依次将数组的值作为对象的属性,然后通过计算次数,但是远不如reduce优雅。原创 2022-08-05 18:30:42 · 297 阅读 · 0 评论 -
JS算法:大数相加
题目给定两个字符串形式的非负整数 num1和num2 ,计算它们的和。输入描述:两个字符串形式的非负整数输出描述:对于每组测试数据,输出字符串,不包含前导零和多余空格。输入例子:13254 4354325输出例子:4367579解题思路JavaScript表达的最大整数是:pow(2, 53) = 9007199254740992。大于2的53次方以后,多出来的有效数字(最后三位的111)都会无法保存,会变成0。所以不能使用常规的加法进行计算,而且题目中输入也是两个字符串原创 2022-03-31 08:57:28 · 1701 阅读 · 0 评论 -
JS算法 —— 二叉树的dfs(深度)和bfs(广度)遍历
目录一、二叉树二、dfs深度优先遍历三、bfs广度优先遍历(层次遍历)一、二叉树演示图tree:const tree = { val: 1, left: { val: 2, left: null, right: { val: 4, left: null, right: { val: 7, left:原创 2022-03-23 15:17:12 · 4454 阅读 · 3 评论