算法
清风_1998
这个作者很懒,什么都没留下…
展开
-
js寻找文件父目录路径
题目在一组文件路径集合中,找出那些存在子路径的集合并返回。说明:1.每个路径只由 / 和 小写字母结合,且不会出现多个 / 重叠的情况。2.以 / 开头,不以 / 结尾,而且不会出现单个的 /,都会组合字母。3.输出结果需要与原输入顺序一致例1:输入:'/a,/a/b,/a/c,/b/c,/b/c/d,/b/cf'输出:'/a,/b/c'解释:因为有 /a 及 /a/b,所以 /a 是文件夹。 因为有 /b/c 及 /b/c/d,所以 /b/c 是文件夹。/b 不存在于输入集合原创 2020-10-30 15:08:19 · 2712 阅读 · 0 评论 -
js实现“像素翻转”算法题
题目描述有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于500,图像元素小于等于256。思路js源代码function transformImage(arr){ var len = arr.length;...原创 2019-12-10 12:20:38 · 881 阅读 · 0 评论 -
JS实现“老鼠走迷宫”算法
问题描述给定一个二维数组,数组中2表示墙壁,0表示通路,由此数组可展示为一个迷宫图。给定入口位置和出口位置,判断之间是否存在通路并显示出走出迷宫的道路。思路实际上是使用回溯算法求解该问题,就是在上下左右四个方向试探,倘若有路则走一步,在新的位置继续在四个位置试探,并且对走过的路进行标记,倘若走到死胡同里,则退回上一步再来试探,以此类推,使用递归来实现。JS代码//递归实现老鼠走迷宫算法...原创 2019-12-01 22:58:34 · 2015 阅读 · 0 评论 -
js实现最大子序列和的四种解法
题目本人最近在学数据结构与算法,但是觉得看书太枯燥了,所以选择看浙江大学-数据结构精品网课的形式进行学习。刚好看到最大子序列和这一节课,现将老师讲的算法都用js实现了一遍。其中原题如下:看不懂没关系,我们再看一下LeetCode上与之相似的题目实现算法暴力破解法。时间复杂度 T(N)=O(N^3)改进的暴力破解法。时间复杂度 T(N)=O(N^2)分而治之法。时间复杂度 T(N)...原创 2019-11-21 14:46:57 · 1802 阅读 · 0 评论 -
JS实现汉诺塔实现递归算法
问题 如下图所示,从左到右有A、B、C三根柱子,其中A柱子上面有从小叠到大的n个圆盘,现要求将A柱子上的圆盘移到C柱子上去,期间只有一个原则:一次只能移到一个盘子且大盘子不能在小盘子上面,求移动的步骤和移动的次数算法分析在我们每次距离对称最近的状态,都是把最大的圆盘放到了最右边,剩下的圆盘放到了中间,然后把...原创 2019-11-20 22:54:08 · 3433 阅读 · 0 评论 -
js实现格雷编码
格雷码简介 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码或反射码。如下:表一 格雷码表...原创 2019-11-13 19:31:55 · 835 阅读 · 0 评论 -
数组类算法:种花问题(JS版本)
下面是种花题目,原题详见LeetCode种花问题源代码:export default (arr,n)=>{ let count= 0; //用于种花计数 // 给左右边界的前后加零,解决边界问题。 arr.push(0); arr.unshift(0); for(var i=1;i<arr.length-1;i++){ if(arr[i]==0&...原创 2019-11-12 20:58:15 · 811 阅读 · 0 评论 -
数组类算法题:卡牌分组(JS版本)
下面是卡牌分组题目,原题详见LeetCode卡牌分组算法步骤:step1.统计重复卡牌的数量。step2.利用递归求出两种卡牌的最大公约数。step3.同理,求出所有卡牌的最大公约数。step4.得到结果。若最终的最大公约数大于1,说明卡牌可以分组。源代码card_combination.js:export default (arr)=>{ //step1.利用r...原创 2019-11-12 19:35:39 · 958 阅读 · 0 评论 -
数组类算法题:电话号码的字母组合(js版本)
下面是电话号码字母组合题目,原题详见LeetCode电话号码的字母组合js源代码:export default (str)=>{ let numToChars = ['','','abc','def','ghi','jkl','mno','pqrs','tuv','wxyz'];//键盘0-9数字对应的字母映射 //step1.如果没有传递数字 if(str.length&...原创 2019-11-12 15:47:15 · 1072 阅读 · 0 评论 -
字符串类算法题:反转字符串中的单词(js版本)
题目如下,LeetCode原题链接请点击这里lesson1_chars.js代码如下:/********** 解法一 ********/ /********** 12ms ********/ export default (str)=>{ //字符串分割成数组 return str.split(' ').map(item=>{ return item.spli...原创 2019-11-12 13:22:35 · 930 阅读 · 0 评论 -
字符串类算法题:给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量(js版本)
题目如下,LeetCode原题链接请点击这里下面是源文件lesson2_chars_num.js:export default (Str)=>{ let result = []; //存储子串的数组 //分割二进制字符串s,将分割的结果进行匹配 for(let i = 0;i < Str.length-1;i++){ let arr = matchStr(S...原创 2019-11-12 13:14:25 · 1599 阅读 · 0 评论