6.21 【思路-动规】接雨水-力扣 题目描述不贴了,在上面的链接里↑ 第一遍写的思路过于简单,按每层遍历,还可以递归少写点代码。但时间复杂度O(n*n),导致在复杂数据点超时。 参考了windliang的题解才想到可以按列遍历,每个柱子能储存的雨水只和左边所有柱子的最高lmax,与右边所有最高rm ...
分类:
其他好文 时间:
2020-06-22 01:30:52
阅读次数:
57
今天在做Leetcode 102. 二叉树的层序遍历 时, 不管怎么试,每一层的输出都为空,如下图: 上述结果所使用的代码如下。 1 public List<List<Integer>> levelOrder(TreeNode root) { 2 if(root == null) return nu ...
分类:
编程语言 时间:
2020-06-14 10:46:26
阅读次数:
134
题目: 二叉树的锯齿形层次遍历:给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 思路: 使用层序遍历的思路,但是没有用到栈。 程序: # Definition for a binary tree node. # class T ...
分类:
编程语言 时间:
2020-05-16 10:35:55
阅读次数:
103
题目: 解答: 思路描述: 计算除 A[i] 以外所有元素的乘积,如果我们使用两层遍历就会重复计算很多次乘法, 其实就相当于求 A[i] 左边所有元素的乘积之和和右边所有元素的乘积 如果我们每次只考虑一边的乘积的话,比如left[i]代表i左侧的乘积,那么left[i + 1] = A[i] * l ...
分类:
编程语言 时间:
2020-05-09 23:33:29
阅读次数:
72
import java.util.LinkedList;import java.util.Queue;/** * 按层遍历二叉树 */public class LevelTraversalBT { public void levelTraversalBT(Node head) { if (head ...
分类:
其他好文 时间:
2020-05-08 09:17:40
阅读次数:
40
一、 grep 工具 grep [选项] '关键字' 文件名 选项: -i:不区分大小写 -v:查找不包含的内容行(反选) -w:按单词搜索 -o:打印匹配关键字 -c:统计匹配到的次数 -n:显示行号 -r:逐层遍历目录查找 -A:显示匹配行及后面多少行 -B:显示匹配行及前面多少行 -C:显示匹 ...
分类:
其他好文 时间:
2020-05-02 00:06:31
阅读次数:
91
深度优先搜索和广度优先搜索广泛运用于树和图中,但是它们的应用远远不止如此。 BFS 广度优先搜索一层一层地进行遍历,每层遍历都是以上一层遍历的结果作为起点,遍历一个距离能访问到的所有节点。需要注意的是,遍历过的节点不能再次被遍历。 第一层: 0 -> {6,2,1,5} 第二层: 6 -> {4} ...
分类:
其他好文 时间:
2020-04-20 18:54:14
阅读次数:
63
数据结构 树 首先回忆一下树的术语 1. 节点的度:一个节点含有的子树的个数称为该节点的树 2. 树的度:一棵树中,最大的节点的度称为树的度 3. 节点的层次:从根开始定义,根为第一层(有时候定义为第0层) 4. 高度:对于任意节点n,n的高度为n到一片树叶的最长路径的长度,所有树叶的高度为0 树的 ...
分类:
其他好文 时间:
2020-04-09 00:20:49
阅读次数:
71
二叉树的遍历,无非就是按层遍历,先序遍历,中序遍历和后序遍历这几种。其中后三种的先,中,后等等是相对于根节点而言的。给出一棵二叉树,我们可以按照相对应的规则去输出它的遍历序列,同样的,如果满足一定的条件,那么也可以通过给出的序列来还原相对应的二叉树。 以满二叉树为例,如下图:(略丑,将就看看) 这棵 ...
分类:
其他好文 时间:
2020-03-21 18:03:15
阅读次数:
65
BFS(广度优先搜索) 类似于树的按层遍历 常用实现方法:队列 模板: 注意: 只能用来求解无权图的最短路径问题 队列:用来存储每一层便利得到的节点 标记:对于遍历过的结点,应将其标记,以防重复访问 leetcode常见题目: 1、地图分析 2、完全平方数 3、单词接龙 ...
分类:
编程语言 时间:
2020-03-08 22:06:36
阅读次数:
61