dfs
卖山竹的山兔
这个作者很懒,什么都没留下…
展开
-
lc_dfs_17_letterCombinations
/*题目:电话号码的字母组合 middle给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序思路:dfs*/package leetCode.Other;import...原创 2020-08-15 17:41:41 · 142 阅读 · 0 评论 -
lc_bfs_417_pacificAtlantic
/*题目:太平洋大西洋水流问题 middle给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度。“太平洋”处于大陆的左边界和上边界,而“大西洋”处于大陆的右边界和下边界。规定水流只能按照上、下、左、右四个方向流动,且只能从高到低或者在同等高度上流动。请找出那些水流既可以流动到“太平洋”,又能流动到“大西洋”的陆地单元的坐标。提示: 输出坐标的顺序不重要 m 和 n 都小于150示例:给定下面的 5x5 矩阵: 太平洋 ~ ~ ~ ~...原创 2020-07-05 22:39:51 · 122 阅读 · 0 评论 -
lc_bfs_200_numIslands
题目:岛屿数量 middle给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:[['1','1','1','1','0'],['1','1','0','1','0'],['1','1','0','0','0'],['0','0','0','0','0']]输出: 1示例 2:输入:[['1','1.原创 2020-07-04 22:44:17 · 102 阅读 · 0 评论 -
lc_bfs_199_rightSideView
题目:二叉树的右视图 middle给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。package leetCode.BFS;import java.util.ArrayDeque;import java.util.LinkedList;import java.util.List;public class lc_bfs_199_rightSideView {/*题目:二叉树的右视图 middle给定一棵二叉树,想象自己站在它的右侧,按.原创 2020-07-04 11:12:21 · 132 阅读 · 0 评论 -
lc_dfs_688_knightProbability
题目:“马”在棋盘上的概率 middle 已知一个 NxN 的国际象棋棋盘,棋盘的行号和列号都是从 0 开始。即最左上角的格子记为 (0, 0),最右下角的记为 (N-1, N-1)。现有一个 “马”(也译作 “骑士”)位于 (r, c) ,并打算进行 K 次移动。如下图所示,国际象棋的 “马” 每一步先沿水平或垂直方向移动 2 个格子,然后向与之相垂直的方向再移动 1 个格子,共有 8 个可选的位置。 现在 “马” 每一步都从可选的位置(包括棋盘外部的)中独立随机地选择一个进行...原创 2020-06-23 14:54:07 · 99 阅读 · 0 评论 -
lc_dfs_130_surroundByX
题目:被围绕的区域 middle给定一个二维的矩阵,包含 '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解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的 'O' 都不会被填充为 'X'。任何不在边界上,或不与边界上的 'O' 相连的 'O' 最终都会被..原创 2020-06-19 16:20:21 · 144 阅读 · 0 评论 -
lc_dfs_129_sumNumbers
题目:求根到叶子节点数字之和 middle给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。package leetCode.DFS;public class lc_dfs_129_sumNumbers {/*题目:求根到叶子节点数字之和 middle给定一个二叉树,它的每个结点都存放一个原创 2020-06-19 11:14:30 · 103 阅读 · 0 评论 -
lc_dfs_124_maxPathSum
题目:二叉树中的最大路径和 hard给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。package leetCode.DFS;public class lc_dfs_124_maxPathSum {/*题目:二叉树中的最大路径和 hard给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。原创 2020-06-18 23:53:39 · 123 阅读 · 0 评论 -
lc_dfs_116_connect
package leetCode.DFS;import java.util.LinkedList;public class lc_dfs_116_connect {/*题目:填充每个节点的下一个右侧节点指针 middle给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指.原创 2020-06-17 23:07:49 · 126 阅读 · 0 评论 -
lc_dfs_114_flatten
题目:二叉树展开为链表 middle给定一个二叉树,原地将它展开为一个单链表。package leetCode.DFS;public class lc_dfs_114_flatten {/*题目:二叉树展开为链表 middle给定一个二叉树,原地将它展开为一个单链表。例如,给定二叉树 1 / \ 2 5 / \ \3 4 6将其展开为:1 \ 2 \ 3 \ 4 \ .原创 2020-06-10 17:19:49 · 124 阅读 · 0 评论 -
lc_dfs_113_pathSum
题目:路径总和 II middle给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。package leetCode.DFS;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;public class lc_dfs_113_pathSum {/*题目:路径总和 II middle给定一个二叉树和一个目标和,原创 2020-06-10 14:43:36 · 108 阅读 · 0 评论 -
lc_dfs_112_hasPathSum
题目:路径总和 simple给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。package leetCode.DFS;public class lc_dfs_112_hasPathSum {/*题目:路径总和 simple给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉原创 2020-06-09 13:50:56 · 200 阅读 · 0 评论 -
lc_dfs_111_minDepth
题目:二叉树的最小深度 simple给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。package leetCode.DFS;public class lc_dfs_111_minDepth {/*题目:二叉树的最小深度 simple给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,nu原创 2020-06-08 18:38:07 · 134 阅读 · 0 评论 -
lc_dfs_110_isBalanced
题目:平衡二叉树 simple给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。package leetCode.DFS;public class lc_dfs_110_isBalanced {/*题目:平衡二叉树 simple给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例...原创 2020-06-08 17:56:13 · 89 阅读 · 0 评论 -
lc_dfs_109_sortedListToBST
题目:有序链表转换二叉搜索树 middle给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。package leetCode.DFS;import sun.reflect.generics.tree.Tree;import java.util.LinkedList;public class lc_dfs_109_sortedListToBST {/*题目:有序链表.原创 2020-06-08 12:37:32 · 158 阅读 · 0 评论 -
lc_dfs_108_sortedArrayToBST
题目:将有序数组转换为二叉搜索树 simple将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5]package leetCode.DFS;import java.util.Arrays;public class lc_dfs_108_sortedArrayToBS...原创 2020-06-07 23:20:53 · 93 阅读 · 0 评论 -
lc_dfs_104_maxDepth
题目:二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。package leetCode.DFS;import java.util.LinkedList;public class lc_dfs_104_maxDept...原创 2020-06-01 16:55:30 · 120 阅读 · 0 评论 -
lc_dfs_101_isSymmetric
题目:对称二叉树 simple给定一个二叉树,检查它是否是镜像对称的。package leetCode.DFS;import java.util.LinkedList;public class lc_dfs_101_isSymmetric {/*题目:对称二叉树 simple给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,原创 2020-06-01 15:35:02 · 99 阅读 · 0 评论 -
lc_dfs_100_isSameTree
题目:相同的树 simple给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。package leetCode.DFS;public class lc_dfs_100_isSameTree {/*题目:相同的树 simple给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1 / \.原创 2020-06-01 10:27:40 · 120 阅读 · 0 评论 -
lc_dfs_98_isValidBST
题目:验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 3 6输出: false解释: 输入为: [5,1,4,null,null,3...原创 2020-05-30 12:50:20 · 116 阅读 · 0 评论 -
lc_dfs_139_wordBreak
题目:单词拆分给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。示例 2:输入: s = "applepe...原创 2020-05-29 09:13:16 · 127 阅读 · 0 评论 -
lc_dfs_79_exist
题目:单词搜索给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E']]给定 word = "ABCCED", 返回 true给定 word = "SEE", 返回 true给定 word = "AB...原创 2020-05-28 21:09:57 · 75 阅读 · 0 评论 -
lc_dfs_52_totalNQueens
题目:N皇后 II middlen 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给定一个整数 n,返回 n 皇后不同的解决方案的数量。示例:输入: 4输出: 2解释: 4 皇后问题存在如下两个不同的解法。[[".Q..", // 解法 1 "...Q", "Q...", "..Q."],["..Q.", // 解法 2 "Q...", "...Q", ".Q.."]]思路: 就是51题的简化...原创 2020-05-24 10:13:33 · 97 阅读 · 0 评论 -
lc_dfs_51_solveNQueens
题目:N皇后 middlen 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。示例:输入: 4输出: [[".Q..", // 解法 1 "...Q", "Q...", "..Q."],["..Q.", // 解法 2 "Q...", "...Q",...原创 2020-05-24 00:09:57 · 112 阅读 · 0 评论