![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
js算法
前端常见算法
KeivnLai
专注与H5大前端开发。
展开
-
【js算法】贪心算法----跳跃游戏(一看就懂)
【思想 】 在对问题求解时,总是做出在当前看来是最好的选择。 也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解最优解 【题目】 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 【思路】 例如这样一个数组,我们需要判断的是,它的位置+它位置所对应的值是否等于数组的长度而已 [2,3,1,1,4] [3,2,1,0,4] var canJump = function(nums) { let k原创 2021-06-30 11:26:53 · 924 阅读 · 0 评论 -
【js算法】贪心----剪绳子(一看就懂)
【贪心算法的思想】 在对问题求解时,总是做出在当前看来是最好的选择。 也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解最优解。 【题目】 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m] 。请问 k[0]k[1]…*k[m] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。 【思路】 利用均值不等式求得 将绳子分成原创 2021-06-30 09:05:45 · 740 阅读 · 0 评论 -
【js算法】动态归回dp----不同路径(详细解答,一看就懂)
【问题】 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径 【思路】 最后的终点有两条路径 从上边一格进入或者从左边 一格进入; 给每一个格子一格值,表示走入这个格子的走法,那么, 最后一个格子的走法 = 上边一个格子的走法 + 左边一格格子的走法 找到动态规划的公式之后 【代码】 /** * @param {number} m * @p原创 2021-06-28 13:42:29 · 445 阅读 · 0 评论 -
动态规划DP--爬楼梯问题
【问题】 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 【要求】 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 4. 1 阶 + 1 阶 + 1 阶 5. 1 阶 + 2 阶 6. 2 阶 + 1 阶 【解题思路】 要爬到楼梯的最上层,最后一步有两种走法,一种是一步一个阶梯,还有一种是原创 2021-06-16 17:00:36 · 863 阅读 · 1 评论 -
JS将手机号中间四位变为****的四种方式
【需求】 小程序,H5, PC的用户信息展示时需要对用户的电话号码进行加密处理,其中常见的做法是将中间四位数字变成 **** ,下边有四种办法 1. 正则表达式 【推荐】 let tel = '18000010001' tel.replace(/(\d{3})\d{4}(\d{4})/, "$1****$2") console.log(tel) 2. 利用数组splice,split,join方法 let tel = '18000010001'; let tempArray = tel.split("")原创 2021-06-09 18:11:42 · 4102 阅读 · 0 评论