上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 22 下一页
摘要: 题目链接 51. N 皇后 思路 使用三个数组分别记录列、主对角线、副对角线的可放置状态。因为是按行进行搜索,在当前行放置后必进入下一行,所以不用记录行的状态。 private boolean[] mainDiagonal; private boolean[] subDiagonal; privat 阅读全文
posted @ 2023-02-27 08:37 Frodo1124 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 题目链接 394. 字符串解码 思路 建立一个数字栈 numStack 和一个字符串栈 stringBuilderStack。遍历字符串 s: 遇到数字和字符时按照相应规则分别累加进 k 和 result 中。 遇到 [ 时将 k 和 result 的值压入栈中并清空变量。 遇到 ] 时将两个栈的栈 阅读全文
posted @ 2023-02-13 19:17 Frodo1124 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 题目链接 341. 扁平化嵌套列表迭代器 思路 遍历 nestedList,碰见子列表便将该子列表传入下一层递归中遍历,直到遍历完所有元素。 代码 class NestedIterator implements Iterator<Integer> { ArrayList<Integer> resul 阅读全文
posted @ 2023-02-13 10:53 Frodo1124 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 题目链接 108. 将有序数组转换为二叉搜索树 思路 类似于二分搜索,定位到数组中间 mid,然后左边的子数组构成左子树,右边的子数组构成右子树,mid 处的数字构成根结点。递归构建左右子树即可,最后返回 root。 代码 class Solution { public TreeNode sorte 阅读全文
posted @ 2023-02-12 19:37 Frodo1124 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 题目链接 669. 修剪二叉搜索树 思路 若 root.val 小于边界值 low,则 root 的左子树必然均小于边界值,我们递归处理 root.right 即可; 若 root.val 大于边界值 high,则 root 的右子树必然均大于边界值,我们递归处理 root.left 即可; 若 r 阅读全文
posted @ 2023-02-12 19:19 Frodo1124 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 题目链接 98. 验证二叉搜索树 思路 依据 BST 的定义:左子树的结点都比根结点小,右子树的结点都比根结点大。我们在递归过程中传递根节点的值,判断当前结点值与根结点值的大小关系。 代码 class Solution { public boolean isValidBST(TreeNode roo 阅读全文
posted @ 2023-02-12 17:53 Frodo1124 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 题目链接 230. 二叉搜索树中第K小的元素 思路 利用 BST 中序遍历是有序的特点,同时每遍历完一个结点将 k--,当 k = 0 的时候,当前结点是第 k 个结点 代码 class Solution { private int k; private int result; public int 阅读全文
posted @ 2023-02-12 15:38 Frodo1124 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 题目链接 863. 二叉树中所有距离为 K 的结点 思路 因为在二叉树中,每个结点至多连接三条边,并且其中两条已经通过左右子结点的形式给出,所以我们只需要记录每个结点的父结点即可。 使用 Map 记录每个结点的父结点,再直接以 target 作为源点开始 DFS,记录与 target 距离为 k 的 阅读全文
posted @ 2023-02-04 11:37 Frodo1124 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 题目链接 572. 另一棵树的子树 思路 判断两个树是否相等的三个条件是与的关系,即: 当前两个树的根节点值相等; 并且,s 的左子树和 t 的左子树相等; 并且,s 的右子树和 t 的右子树相等。 而判断 subRoot 是否为 root 的子树的三个条件是或的关系,即: 当前两棵树相等; 或者, 阅读全文
posted @ 2023-02-03 17:22 Frodo1124 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 题目链接 104. 二叉树的最大深度 思路 递归求左右子树的最大深度并取最大值,返回值在最大值上+1。 递归终止条件为 root == null,此时返回 0。 代码 class Solution { public int maxDepth(TreeNode root) { if(root == n 阅读全文
posted @ 2023-02-03 14:33 Frodo1124 阅读(16) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 22 下一页