js算法
码农小菲
一份耕耘一份收获
展开
-
JS算法 --函数柯里化
js算法,函数柯里化原创 2022-07-13 14:56:03 · 257 阅读 · 0 评论 -
JS算法 -- 手写getType函数,获取详细数据类型
js判断数据类型原创 2022-07-13 10:50:47 · 237 阅读 · 0 评论 -
js算法 -- 切换字母大小写(ASCII编码)
切换字母大小写如2539rgTm53ILO 转换成 2539RGtM53ilo function switchLetterCase(s:string): string{ let res = '' const length = s.length if(length === 0) return res for(let i = 0; i < length; i++){ const c = s[i] const code = c.charCodeAt(0) //获取对原创 2022-05-13 13:25:52 · 286 阅读 · 0 评论 -
js算法 -- 快速排序
快速排序时间复杂度 O(nlong(n)) function quickSort(arr:number[]):number[]{ const length = arr.length if(legnth === 0) return arr const midIndex = Math.floor(length / 2) const midValue = arr.slice(midIndex,midIndex + 1)[0] const left: number原创 2022-05-12 10:14:01 · 71 阅读 · 0 评论 -
js算法 --获取字符串中字符串连续最多的字符以及次数 (双指针解法)
获取字符串中字符串连续最多的字符以及次数如 输入 ‘abbcccddeeee1234’连续最多的字符是 e ,4次双指针解法定义指针 i 和 j 。j 不动,i 继续移动如果 i 和 j 的值一直相等,则 i 继续移动直到 i 和 j 的值不相等,记录处理,让 j 追上 i ;继续第一步interface Ires { char:string length:number}function fn(str:string):Ires{ let res :Ires = {原创 2022-05-11 15:37:16 · 570 阅读 · 0 评论 -
js算法 -- 移动0到数组的末尾(嵌套循环、双指针)
移动0到数组的末尾如输入[1,0,3,0,11,0] ,输出[1,3,11,0,0,0,0]只移动0,其它顺序不变必须在原数组进行操作解法一:嵌套循环遍历数组,遇到0则push到数组末尾用splice 截取当前元素时间复杂度 O(n ^ 2) – 算法不可用 function moveZero1(arr: number[]):void{ const length = arr.length if(length === 0) return let zeroLength原创 2022-05-11 14:19:42 · 584 阅读 · 1 评论 -
js算法 --求 斐波那契数列第n值 (递归、循环解法) 、青蛙跳台阶
求 斐波那契数列第n值[0,1,1,2,3,5,8,13,21,34,55]fn(-1) = 0 ; fn(0) = 0; fn(1) = 1; fn(2) = 1; fn(3) = 2; fn(10)=55解法一:递归时间复杂度O(2 ^ n) fn(n:number):number{ if(n <== 0) return 0 if(n === 1) return 1 return fn(n-1) + fn(n-2) }解法二:循环时间复杂度 O(n)原创 2022-05-11 10:44:10 · 537 阅读 · 0 评论