搜索
XIIV13
这个作者很懒,什么都没留下…
展开
-
LeetCode刷题笔记 116. 填充每个节点的下一个右侧节点指针
题目描述给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node {int val;Node *left;Node *right;Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NU...原创 2020-03-27 23:21:35 · 201 阅读 · 0 评论 -
LeetCode刷题笔记 979. 在二叉树中分配硬币
题目描述给定一个有 N 个结点的二叉树的根结点 root,树中的每个结点上都对应有 node.val 枚硬币,并且总共有 N 枚硬币。在一次移动中,我们可以选择两个相邻的结点,然后将一枚硬币从其中一个结点移动到另一个结点。(移动可以是从父结点到子结点,或者从子结点移动到父结点。)。返回使每个结点上只有一枚硬币所需的移动次数。示例:输入:[0,3,0]输出:3解释:从根结点的左子结点开...原创 2020-03-26 22:29:03 · 306 阅读 · 0 评论 -
LeetCode刷题笔记 994. 腐烂的橘子
题目描述在给定的网格中,每个单元格可以有以下三个值之一:值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。示例1:输入:[[2,1,1],[1,1,0],[0,1,1]]输出:4示例2:输入:[[2],[1...原创 2019-10-21 15:46:45 · 215 阅读 · 0 评论 -
LeetCode刷题笔记 343. 整数拆分
记忆化搜索class Solution { private int[] memory; public int integerBreak(int n) { memory = new int[n + 1]; memory[0] = 0; memory[1] = 1; for (int i = 2; i < n + ...原创 2019-10-14 11:51:14 · 219 阅读 · 0 评论 -
LeetCode刷题笔记 98. 验证二叉搜索树*
题目描述给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。总结需要注意 非边界节点需要满足两个条件,大于父节点,小于祖父节点,或者小于父节点,大于祖父节点SDC值得好好看看SDC2把搜索二叉树用中序转换为数组,遍历判断就行了Sampl...原创 2019-10-02 17:08:38 · 188 阅读 · 0 评论 -
LeetCode刷题笔记 102. 二叉树的层次遍历
题目描述给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。Sample & Demo Code(递归,DFS)class Solution { List<List<Integer>> res = new ArrayList<>(); public List<List<Integer>&...原创 2019-10-03 10:41:47 · 209 阅读 · 0 评论 -
LeetCode刷题笔记 130. 被围绕的区域
题目描述给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X总结SDC1:DFS,想不到效率还挺高的,还是那句话,先实现,再优化。SDC2:...原创 2019-10-04 18:08:09 · 214 阅读 · 0 评论