摘要:
分治 算法设计的一种方法 将一个问题分成和原问题相似的小问题,递归解决,再将结果合并为原来的问题 场景 归并排序 快速排序 二分查找 LeetCode 226. 翻转二叉树 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root = [4,2,7,1,3,6 阅读全文
摘要:
回溯算法 算法设计的一种思想 渐进式寻找解决问题的方法 从一个可能的动作开始解决问题,如果改动作不行,就回溯到最初的状态,选择另一种动作解决问题 LeetCode 46. 全排列 难度中等2249收藏分享切换为英文接收动态反馈 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可 阅读全文
摘要:
排序 1. 冒泡排序 1. 对于一个数组,比较所有的相邻的元素,如果第一个大于第二个,则交换 2. 比较一轮下来,可以保证一个元素是有序的 3. 在比较n-1 轮,整个数组就排序好了 代码实现 // 将排序算法挂载到原型链上 Array.prototype.bubbleSort = function 阅读全文
摘要:
贪心算法 算法设计思想 期盼通过每个阶段的最优,来达到全局的最优 结果并不一定是最优的 LeetCode 455. 分发饼干 难度简单582收藏分享切换为英文接收动态反馈 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i] 阅读全文
摘要:
图 一个二元关系 图的表示法 邻接矩阵 邻接表 图的遍历 深度优先搜索 访问根节点(开始节点) 循环访问没有访问过的邻接节点(递归,新节点跳回第一步) 广度优先搜索 维护一个队列 节点入队(第一次开始节点) 节点出队并访问,把当前节点没有访问过的邻接节点入队(循环第三步,直到队列为空) LeetCo 阅读全文