力扣
文章平均质量分 52
bugmaker.
这个作者很懒,什么都没留下…
展开
-
回溯框架总结
其实回溯算法和我们常说的 DFS 算法非常类似,本质上就是一种暴力穷举算法。回溯算法和 DFS 算法的细微差别是:回溯算法是在遍历「树枝」,DFS 算法是在遍历「节点」,本文就是简单提一下,等你看到后文图论算法基础 时就能深刻理解这句话的含义了。废话不多说,直接上回溯算法框架,解决一个回溯问题,实际上就是一个决策树的遍历过程,站在回溯树的一个节点上,你只需要思考 3 个问题:1、路径:也就是已经做出的选择。2、选择列表:也就是你当前可以做的选择。原创 2022-11-26 21:04:26 · 714 阅读 · 0 评论 -
动态规划做题总结
动态规划的本质是填表,自底向上的完成DP数组的构建。难点在于DP数组的定义以及状态转移方程的构建。原创 2022-11-19 19:14:52 · 99 阅读 · 0 评论 -
剑指——树
文章目录简单二叉树的镜像二叉树深度二叉树深度扩充(平衡二叉树)二叉搜索树的第K个节点中等二叉搜索树与双向链表重建二叉树二叉树的下一个节点把二叉树打印成多行简单二叉树的镜像操作给定的二叉树,将其变换为源二叉树的镜像。思路:利用递归将左右子树对调即可public class Solution { public void Mirror(TreeNode root) { if(root == null){ return; }原创 2021-01-08 19:43:52 · 278 阅读 · 0 评论 -
二叉树心得
二叉树原创 2022-07-14 20:35:09 · 982 阅读 · 0 评论 -
链表相关题目
链表相关题目原创 2022-07-03 11:13:39 · 99 阅读 · 0 评论 -
贪心
一、分配饼干解题思路:先对两个数组进行排序,判断最小的饼干能否满足胃口最小的孩子,如果可以,两个数组都向下移一位。如果不可以,换大一号的饼干。代码:class Solution { public int findContentChildren(int[] g, int[] s) { Arrays.sort(g); Arrays.sort(s); ...原创 2020-03-17 19:06:42 · 337 阅读 · 0 评论 -
BFS
文章目录BFS一、二进制矩阵中的最短路径二、完全平方数三、单词接龙BFS(1)BFS的问题一般都会选用队列方式实现;(2)代码模板如下:void BFS(){ 定义队列; 定义备忘录,用于记录已经访问的位置; 判断边界条件,是否能直接返回结果的。 将起始位置加入到队列中,同时更新备忘录。 while (队列不为空) { 获取当...原创 2020-03-17 18:59:56 · 206 阅读 · 0 评论 -
二分法
一,求平方根实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842…,由于返回类型是整数,小数部分将被舍去。解法一:二分查找法class Solution { publi...原创 2020-03-17 19:00:56 · 259 阅读 · 0 评论 -
双指针
一、反转字符串中的元音字符力扣解题思路:使用双指针,一个指针从头向尾遍历,一个指针从尾到头遍历,当两个指针都遍历到元音字符时,交换这两个元音字符。代码:private final static HashSet<Character> vowels = new HashSet<>( Arrays.asList('a', 'e', 'i', 'o', '...原创 2020-03-17 19:01:12 · 124 阅读 · 0 评论