深度优先搜索
深度优先搜索
qxlxi
21届本,后端工程师 (专注于Java、Go、数据库、缓存、消息队列、网络、OS、算法、软件设计、DevOps、云原生、大数据、分布式系统架构设计等)
展开
-
【每日一题-leetcode】773. 滑动谜题
773. 滑动谜题难度困难85在一个 2 x 3 的板上(board)有 5 块砖瓦,用数字 1~5 来表示, 以及一块空缺用 0 来表示.一次移动定义为选择 0 与一个相邻的数字(上下左右)进行交换.最终当板 board 的结果是 [[1,2,3],[4,5,0]] 谜板被解开。给出一个谜板的初始状态,返回最少可以通过多少次移动解开谜板,如果不能解开谜板,则返回 -1 。示例:输入:board = [[1,2,3],[4,0,5]]输出:1解释:交换 0 和 5 ,1 步完成//原创 2020-08-25 11:34:23 · 369 阅读 · 0 评论 -
【每日一题-leetcode】37. 解数独
37. 解数独难度困难505编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。空白格用 ‘.’ 表示。public void solveSudoku(char[][] board) { if (board == null || board[0].length == 0) return; solve(boar原创 2020-08-23 15:41:36 · 331 阅读 · 0 评论 -
【每日一题-leetcode】79.单词搜索
79.单词搜索单词搜索难度中等502给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[['A','B','C','E'],['S','F','C','S'],['A','D','E','E']]给定 word = "ABCCED", 返回 true给定 word = "SEE", 返回 true给定 wo原创 2020-08-04 13:04:56 · 350 阅读 · 0 评论 -
【每日一题-leetcode】289. 生命游戏
289. 生命游戏生命游戏难度中等234根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0即为死细胞(dead)。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律:如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡;如果活细胞周围八个位置有两个或三个活细胞,则该位置活原创 2020-07-24 13:57:49 · 408 阅读 · 1 评论 -
【每日一题-leetcode】114. 二叉树展开为链表
114. 二叉树展开为链表二叉树展开为链表难度中等420给定一个二叉树,原地将它展开为一个单链表。例如,给定二叉树 1 / \ 2 5 / \ \3 4 6将其展开为:1 \ 2 \ 3 \ 4 \ 5 \ 6// 树的解决方式dfs(先序遍历,中序遍历,后序遍历)// bds(层序遍历)// 而本题只能用dfs 通过交换左右子树的原创 2020-07-18 09:49:17 · 317 阅读 · 0 评论 -
【每日一题-leetcpde】130. 被围绕的区域
130. 被围绕的区域被围绕的区域难度中等258给定一个二维的矩阵,包含 ‘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解题思路dfs 1.通过从边界的 O 上下左右查找,如果可以找到说明 查找到的O可以连通到边界的O所以 只需要 O 记录一下 修改成 #原创 2020-07-14 15:57:22 · 422 阅读 · 0 评论 -
【每日一题-leetcode】124. 二叉树中的最大路径和
124. 二叉树中的最大路径和二叉树中的最大路径和难度困难595给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6private int res = Integer.MIN_VALUE;public int maxPathSum(TreeNode root) { if(r原创 2020-07-14 10:49:26 · 526 阅读 · 0 评论 -
【每日一题-leetcode】543.二叉树的直径
543.二叉树的直径二叉树的直径难度简单397给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例 : 给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。1.dfs最长直径。可能有三种情况、1.要么在左子树中 2.要么在右子树中原创 2020-07-07 09:52:44 · 351 阅读 · 0 评论 -
【每日一题-leetcode】437.路径总和
437.路径总和路径总和 III难度简单472给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8 10 / \ 5 -3原创 2020-07-03 10:42:30 · 432 阅读 · 0 评论 -
【剑指offer】12.矩阵中的路径
12.矩阵中的路径面试题12. 矩阵中的路径难度中等72请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[[“a”,“b”,“c”,“e”], [“s”,“f”,“c”,“s”], [“a”,“d”,“e”,“e”]]但矩阵中不包含字符串“abf原创 2020-05-25 18:52:53 · 392 阅读 · 0 评论 -
【每日一题-leetcode】 102.二叉树的层序遍历
102.二叉树的层序遍历二叉树的层序遍历难度中等460给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]1.D...原创 2020-05-03 17:52:49 · 409 阅读 · 0 评论 -
【剑指offer】36. 二叉搜索树与双向链表
36. 二叉搜索树与双向链表难度中等31输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。为了让您更好地理解问题,以下面的二叉搜索树为例:我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。下图展示了上面的...原创 2020-04-28 15:50:10 · 280 阅读 · 0 评论 -
【每日一题-leetcode】111.二叉树的最小深度
111.二叉树的最小深度二叉树的最小深度难度简单244给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.//分治public...原创 2020-04-23 16:49:54 · 327 阅读 · 0 评论 -
【每日一题-leetcode】104.二叉树的最大深度
104.二叉树的最大深度二叉树的最大深度难度简单513给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。 //D...原创 2020-04-23 16:40:03 · 314 阅读 · 0 评论 -
【每日一题-leetcode】226.翻转二叉树
226.翻转二叉树翻转二叉树难度简单413翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 11.DFStime : O(n)space: O(n) 最好 O(1) 最坏 O(n)退换成链表...原创 2020-04-23 16:15:15 · 348 阅读 · 0 评论