
回溯
Is Anonymous
这个作者很懒,什么都没留下…
展开
-
leetcode生成有效的括号种类【回溯】
啊啊啊原创 2022-07-09 22:21:47 · 130 阅读 · 0 评论 -
深克隆【回溯】【队列】
没什么说的var a = { b: { c: [{ c: 3 }] }, e: [{ a: 2 }]}function deepClone(obj) { let result = Array.isArray(obj) ? [] : {} for (const key in obj) { const thisValue = obj[key] if (thisValue.constructor===Array||thisValu原创 2022-04-21 14:32:36 · 3064 阅读 · 0 评论 -
快速排序、归并排序、插入排序[二分法,递归等]
三个排序思想,这种二分通过递归方式是,不可取的,作为思路var quickSort = function (arr) { if (arr.length <= 1) { return arr; } // if (arr.length === 2) { return arr[0] > arr[1] ? arr : [arr[1], arr[0]] } var pivot = arr.splice(0, 1)[0]; var left = []; var right = [];原创 2021-08-26 11:53:48 · 157 阅读 · 0 评论 -
leetcode 不同的子序列[记忆化递归][动态规划]
let s = "gnosdsodagndsmfosdfbbasdbfsbadfbdbgbbbagbbfgbfgbabgabfbgabgbafbgabgbabgbgbbfgbadgbabgabgbabgbagbgbg", t = "bag"const resData = new Set();const tresData = new Set();const sl = s.length;const tl = t.length;function name(z, m, res = "") { if原创 2021-11-04 21:30:45 · 109 阅读 · 0 评论 -
数组实现二叉树[回溯]
这里写自定义目录标题// 节点对象function Node( data, left, right, index) { this.data = data; // 节点值 this.left = left || null; // 当前节点的左子节点 this.right = right || null; // 当前节点的右子节点 this.index = index; this.leaf = false; i原创 2021-08-31 20:22:45 · 159 阅读 · 0 评论 -
BFS与DFS的区别应用 来解决leetcode 被围绕区域问题
DFSlet board = [["O", "O", "O", "X"], ["O", "X", "X", "X"], ["X", "O", "O", "X"], ["X", "X", "X", "O"]]let rowsL = board.length, colsL = board[0].length;function solve(board) { if (!board.length) return; let arr = [] for (let i = 0; i &l原创 2021-09-26 11:32:47 · 234 阅读 · 0 评论 -
前、中、后序遍历
全排列问题对三种遍历都涉及了原创 2021-08-30 14:25:47 · 3152 阅读 · 0 评论 -
N皇后[回溯]
N皇后问题,也是路径问题。经典回溯算法function name(n) { const res = [] let arr = [] for (let j = 0; j < n; j++) { let temp = [] for (let i = 0; i < n; i++) { temp.push('.') } arr.push(temp) } backtrack(原创 2021-08-26 13:47:27 · 73 阅读 · 0 评论 -
二维数组排序[递归、回溯]
给定条件排序,存在优化空间,使用递归方式,仅仅作为思路var list = [{ age: 3, height: 1, weight: 2,}, { age: 1, height: 2, weight: 3,}, { age: 1, height: 1, weight: 3,}, { age: 1, height: 1, weight: 1,},{ age: 6, height: 0, weight: 1,}, { age: 6,原创 2021-08-26 11:29:47 · 224 阅读 · 0 评论 -
所有路径[回溯]
基于给出的方格找出所有的坐标点数组,类似于全排列,思想是先划定边界function name(s, e) { let txA = [], tyA = [] for (let q = 1; q <= e; q++) { txA.push([q, 1]) } for (let p = s; p >= 1; p--) { tyA.push([s, p]) } let temp = [] function f(p) { const tx = p[p.原创 2021-08-25 18:14:23 · 159 阅读 · 0 评论 -
数组组合与数字全排列[循环、递归]
自顶向下组合/** * * @param {[[number]]} array 值 */ function name(array) { return array.reduce((last, next) => { var arr = []; last.forEach(e1 => { next.forEach(e2 => { arr.push([e1 + "," + e2]) }) }) return ar原创 2021-08-25 16:54:16 · 215 阅读 · 0 评论