随笔分类 - 算法总结
摘要:巧劲 function foo(x) { if(x < 2) return x; // 筛选出0和1 let y = 1; while(y <= x/y) { // 等于的时候也需要加,因为后面都会统一减一 y++; } return y - 1; } 赖劲 function foo(x) { re
阅读全文
摘要:使用标识 通过判断当前的节点是否有我们添加上去的标识,如果有标识是环,并且是环的入口 function foo(head) { while(head) { if(head.flag) return true; head.flag = true; head = head.next; } return
阅读全文
摘要:思路:取一个对比值,然后将他从原数组中取出,跟数组中剩下的值进行对比,需要创建两个数组,一个记录比值小的,一个记录比值大的 function quickSort(arr) { if(arr.length < 2) return arr; const middleIndex = Math.floor(
阅读全文
摘要:###动态规划题型难点 首先找不到dp的规律是什么 不知道什么时候开始,什么时候结束 不知道该用遍历还是递归(这个其实两个都一样,只是看个人更喜欢用那一种) ###挨个解决 首先对于找不到dp规律的,其实无非就那几种。后一个是在前一个或者前几个当中取最小/最大值,然后就可以得出类似这样的,dp[i]
阅读全文
摘要:数组扁平化就是将多维数组化为一维数组 ###递归的方式 function flatArr(arr) { return arr.reduce((result, item) => { return result.concat(Array.isArray(item) ? flatArr(item) : i
阅读全文
摘要:###深度遍历 ####前序遍历 function DLR(arr,root) { if(!root) return; //遍历结束条件 arr.push(root.val) //收集结果 DLR(arr, root.left) DLR(arr, root.right) } ####中序遍历 fun
阅读全文
摘要:####使用RegExp ``` function getCharCount(str, char) { //str父字符串,char子字符串 const regexp = new RegExp(char, 'g') //'g'表示需要匹配整个字符串 const result = str.match(
阅读全文