![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DFS
Ypopstar
这个作者很懒,什么都没留下…
展开
-
LeetCode--112--路径总和
题目描述:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。输入:5/ 4 8/ / 11 13 4/ \ 7 2 1sum = 22输出:true题意:题目描述题解:简单dfs,一步步搜代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * T原创 2020-07-08 16:51:41 · 255 阅读 · 0 评论 -
LeetCode--101--对称二叉树
题目描述:给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。输入:a = “11”, b = “1”a = “1010”, b = “1011”输出:10010101题意:题目描述题解:直接搜,对于每一个节点,判断左右子节点是不是相等代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNo原创 2020-07-06 16:19:28 · 113 阅读 · 0 评论 -
LeetCode--112--路径总和
题目描述:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。输入:5/ 4 8/ / 11 13 4/ \ 7 2 1来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/path-sum著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。输出:22题意:题目描述题解:直接dfs搞代码:/** * Defin原创 2020-07-06 16:16:59 · 107 阅读 · 0 评论 -
LeetCode--100--相同的树
题目描述:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的输入:[1,2,3], [1,2,3][1,2], [1,null,2][1,2,1], [1,1,2]输出:truefalsefalse题意:题目描述题解:简单dfs直接搜两个树的左节点和右节点做比较代码:/** * Definition for a binary tree node. * public class TreeNode原创 2020-07-06 16:11:24 · 122 阅读 · 0 评论 -
LeetCode--129--求根到叶子节点数字之和
题目描述:给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。输入:[1,2,3][4,9,0,5,1]输出:251026题意:题目描述题解:简单dfs直接搜到最后更新答案就好了代码:/** * Definition for a binary tree node. * public原创 2020-06-25 21:26:43 · 133 阅读 · 0 评论 -
LeetCode--111--二叉树的最小深度
题目描述:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。输入:[3,9,20,null,null,15,7]输出:2题意:题目描述题解:简单dfs找到没有左右结点为止就更新最小深度代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left;原创 2020-06-25 21:25:28 · 107 阅读 · 0 评论 -
LeetCode--90--子集 II
题目描述:给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。输入:[1,2,2]输出:[[2],[1],[1,2,2],[2,2],[1,2],[]]题意:题目描述题解:简单dfs排个序后直接爆搜,用set去重就好了代码:class Solution {List<List<Integer>> ans2 = new ArrayList<>(); HashSet<List<Integer原创 2020-06-22 21:52:56 · 99 阅读 · 0 评论 -
LeetCode--78--子集
题目描述:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。输入:nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]题意:题目描述题解:简单dfs直接爆搜即可代码:class Solution { List<List<Integer>> ans = new ArrayList<>(); public List<Lis原创 2020-06-22 21:51:50 · 99 阅读 · 0 评论 -
LeetCode--39--组合总和
题目描述:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。输入:candidates = [2,3,6,7], target = 7candidates = [2,3,5], target = 8输出:[[7],[2,2,3]][[2,2,2,2],[2,3,3],[3,5]]题意:题目描述题解:简单dfs代码:c原创 2020-06-21 21:42:58 · 124 阅读 · 0 评论 -
LeetCode--40--组合总和 II
题目描述:给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。输入:candidates = [10,1,2,7,6,1,5], target = 8candidates = [2,5,2,1,2], target = 5输出:[[1, 7],[1, 2, 5],[2, 6],[1, 1, 6]][[1,2,2],[5]]题意:原创 2020-06-21 21:41:50 · 120 阅读 · 0 评论 -
LeetCode--1079--活字印刷
题目描述:你有一套活字字模 tiles,其中每个字模上都刻有一个字母 tiles[i]。返回你可以印出的非空字母序列的数目。输入:AABAAABBC输出:8188题意:题目描述题解:简单dfs,直接爆搜代码:class Solution { public int numTilePossibilities(String tiles) { if (tiles == null || tiles.length() == 0) { return原创 2020-06-18 21:11:08 · 215 阅读 · 0 评论 -
LeetCode--22--括号生成
题目描述:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。输入:n = 3输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]题意:题目描述题解:简单dfs代码:class Solution { List<String> ans = new ArrayList<>(); public List<String> generatePar原创 2020-06-17 21:37:26 · 80 阅读 · 0 评论 -
LeetCode--104--二叉树的最大深度
题目描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。输入:[3,9,20,null,null,15,7]输出:3/ 9 20/ 15 7题意:题目描述题解:简单dfs代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left;原创 2020-06-16 21:34:03 · 63 阅读 · 0 评论 -
LeetCode--216--组合总和 III
题目描述:找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。解集不能包含重复的组合。输入:[-4,-1,0,3,10][-7,-3,2,3,11]输出:[0,1,9,16,100][4,9,9,49,121]题意:题目描述题解:简单dfs直接搜,记录一下开始的值,k和n就好了代码:class Solution { List<List<Integer>>原创 2020-06-16 21:28:22 · 72 阅读 · 0 评论 -
LeetCode--654--最大二叉树
题目描述:给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下:二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。通过给定的数组构建最大二叉树,并且输出这个树的根节点。输入:[3,2,1,6,0,5]输出:6/ 3 5\ /2 01题意:题目描述题解:dfs找到每次的最大值去搜去构造就好了代码:/** * Definition for a bi原创 2020-06-16 21:23:25 · 94 阅读 · 0 评论 -
LeetCode--46--全排列
题目描述:给定一个 没有重复 数字的序列,返回其所有可能的全排列。输入:[1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]题意:题目描述题解:基础dfs拿一个标记数组标记一下,然后一位一位的搜就好了代码:class Solution { List<List<Integer>> ans = new ArrayList<>(); public List&l原创 2020-06-14 21:12:50 · 88 阅读 · 0 评论 -
HDOJ--1016--Prime Ring Problem
题目描述:A ring is compose of n circles as shown in diagram. Put natural number 1, 2, …, n into each circle separately, and the sum of numbers in two adjacent circles should be a prime.Note: the number of first circle should always be 1.输入描述:n (0 < n &l原创 2020-05-12 17:18:48 · 163 阅读 · 0 评论 -
HDOJ--1878--欧拉回路
题目描述:欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路。现给定一个图,问是否存在欧拉回路?输入描述:测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是节点数N ( 1 < N < 1000 )和边数M;随后的M行对应M条边,每行给出一对正整数,分别是该条边直接连通的两个节点的编号(节点从1到N编号)。当N为0时输入结束。输出描...原创 2020-05-07 17:35:55 · 179 阅读 · 0 评论 -
HDOJ--1572--下沙小面的(2)
题目描述:前文再续,书接上一题。话说当上小面的司机的Lele在施行他的那一套拉客法则以后,由于走的路线太长,油费又贵,不久便亏本了。(真可怜~)于是他又想了一个拉客的办法。对于每一次拉客活动,他一次性把乘客都拉上车(当然也不会超过7个,因为位置只有7个)。然后,Lele计算出一条路线(出于某些目的,Lele只把车上乘客的目的地作为这条路线上的站点),把所有乘客都送到目的地(在这路线上不拉上其他...原创 2020-04-22 22:58:21 · 74 阅读 · 0 评论 -
HDOJ--1312--Red and Black
题目描述:There is a rectangular room, covered with square tiles. Each tile is colored either red or black. A man is standing on a black tile. From a tile, he can move to one of four adjacent tiles. But h...原创 2020-04-22 22:56:52 · 119 阅读 · 0 评论 -
HDOJ--2616--Kill the monster
题目描述:There is a mountain near yifenfei’s hometown. On the mountain lived a big monster. As a hero in hometown, yifenfei wants to kill it.Now we know yifenfei have n spells, and the monster have m HP...原创 2020-04-21 23:07:47 · 133 阅读 · 0 评论 -
POJ--1321--棋盘问题
题目描述:在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。输入描述:输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <...转载 2020-04-21 23:06:13 · 109 阅读 · 0 评论 -
HDOJ--1010--Tempter of the Bone
题目描述:The doggie found a bone in an ancient maze, which fascinated him a lot. However, when he picked it up, the maze began to shake, and the doggie could feel the ground sinking. He realized that the...原创 2020-04-20 22:53:03 · 154 阅读 · 0 评论 -
牛客网--14408--璐神看岛屿
题目描述:璐神现在有张n*m大小的地图,地图上标明了陆地(用"#“表示)和海洋(用”.“表示),现在璐神要计算这张地图上岛屿的数量。已知岛屿是由陆地的连通块组成,即一块陆地的上、下、左、右,左上,右上,左下,右下有其他陆地,则构成连通块,以此类推。此外,岛屿的详细定义如下:1、岛屿的周围必须全是海洋。2、如果连通块有任意区域在地图边界,则该连通块不是岛屿。输入描述:第1行输入两个整数...原创 2020-04-14 23:04:10 · 316 阅读 · 0 评论 -
HDOJ--1978--How many ways
题目描述:这是一个简单的生存游戏,你控制一个机器人从一个棋盘的起始点(1,1)走到棋盘的终点(n,m)。游戏的规则描述如下:1.机器人一开始在棋盘的起始点并有起始点所标有的能量。2.机器人只能向右或者向下走,并且每走一步消耗一单位能量。3.机器人不能在原地停留。4.当机器人选择了一条可行路径后,当他走到这条路径的终点时,他将只有终点所标记的能量。如上图,机器人一开始在(1,1)点,并拥...原创 2020-04-14 23:02:08 · 136 阅读 · 0 评论 -
Codeforces--977D--Divide by three, multiply by two
题目描述:Polycarp likes to play with numbers. He takes some integer number x, writes it down on the board, and then performs with it n−1 operations of the two kinds:divide the number x by 3 (x must be d...原创 2020-04-14 22:57:32 · 182 阅读 · 0 评论 -
HDOJ--1087--FatMouse and Cheese
题目描述:FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimension n: each grid location is labelled (p,q) where 0 <= p < n and 0 <= q < n. At each g...原创 2020-04-13 22:25:14 · 118 阅读 · 0 评论 -
牛客网--15291--幸运数字Ⅱ
题目描述:定义一个数字为幸运数字当且仅当它的所有数位都是4或者7。比如说,47、744、4都是幸运数字而5、17、467都不是。定义next(x)为大于等于x的第一个幸运数字。给定l,r,请求出next(l) + next(l + 1) + … + next(r - 1) + next®。输入描述:两个整数l和r (1 <= l <= r <= 1000,000,000...原创 2020-04-13 22:19:22 · 431 阅读 · 0 评论 -
牛客--2019蘑菇街--方格走法
题目描述:有一个X*Y的网格,小团要在此网格上从左上角到右下角,只能走格点且只能向右或向下走。请设计一个算法,计算小团有多少种走法。给定两个正整数int x,int y,请返回小团的走法数目。输入描述:输入包括一行,空格隔开的两个正整数x和y,取值范围[1,10]。输出描述:输出一行,表示走法的数目输入:3 2输出:10题意:题目描述题解:随便搜索一下代码:#incl...原创 2020-03-23 19:54:58 · 96 阅读 · 0 评论 -
牛客网--14572--走出迷宫
题目描述:小明现在在玩一个游戏,游戏来到了教学关卡,迷宫是一个N*M的矩阵。小明的起点在地图中用“S”来表示,终点用“E”来表示,障碍物用“#”来表示,空地用“.”来表示。障碍物不能通过。小明如果现在在点(x,y)处,那么下一步只能走到相邻的四个格子中的某一个:(x+1,y),(x-1,y),(x,y+1),(x,y-1);小明想要知道,现在他能否从起点走到终点。输入描述:本题包含多组...原创 2020-03-22 19:54:44 · 529 阅读 · 0 评论 -
牛客网--15107--石油采集
题目描述:随着海上运输石油泄漏的问题,一个新的有利可图的行业正在诞生,那就是撇油行业。如今,在墨西哥湾漂浮的大量石油,吸引了许多商人的目光。这些商人们有一种特殊的飞机,可以一瓢略过整个海面20米乘10米这么大的长方形。(上下相邻或者左右相邻的格子,不能斜着来)当然,这要求一瓢撇过去的全部是油,如果一瓢里面有油有水的话,那就毫无意义了,资源完全无法利用。现在,商人想要知道,在这片区域中,他可以最多...原创 2020-03-22 19:42:27 · 191 阅读 · 0 评论 -
牛客网--14591--数芝麻
题目描述:有天糖在宿舍闲着没事, 拿出粉笔在地上画了n*n个方格, 每个方格放上一定数量的芝麻, 并规定如果两个方格相邻且都有芝麻,那这两个方块都属于同一片区域。现在问你的是, 有没有存在这样的区域, 它的芝麻的总数量为m输入描述:有多组数据,每组数据第一行为n(n<=100)和m, 接下来有n行n列数据, 每个数字代表每个方格里的芝麻数量,, 当n和m等于0时结束输入。输出描述:...原创 2020-03-22 13:40:18 · 287 阅读 · 0 评论 -
牛客网--23974--相聚
题目描述:小猫在研究网格图。小猫在研究联通性。给定一张N×M的网格图,只含字符0和1,问1形成的联通块有多少个。两个1是联通的,当且仅当其中一个位于另一个的上、下、左、右四个方向之一输入描述:第一行一个正整数T,表示数据组数。每组数据的第一行两个正整数N,M,表示矩阵的长和宽。接下来N行,每行M个字符0或1。输出描述:一行一个整数表示答案。输入:31 21 3输出:...原创 2020-03-22 13:32:05 · 322 阅读 · 0 评论 -
牛客网--14248--Treepath
题目描述:给定一棵n个点的树,问其中有多少条长度为偶数的路径。路径的长度为经过的边的条数。x到y与y到x被视为同一条路径。路径的起点与终点不能相同。输入描述:第一行一个数n表示点的个数;接下来n-1行,每行两个整数x,y表示边;保证输入数据形成一棵树;1<=n<=100000输出描述:一行一个整数表示答案。输入:31 21 3输出:1题意:题目描述题解...原创 2020-03-22 11:22:17 · 149 阅读 · 0 评论 -
Codeforces--55B--Smallest number
题目描述:Recently, Vladimir got bad mark in algebra again. To avoid such unpleasant events in future he decided to train his arithmetic skills. He wrote four integer numbers a, b, c, d on the blackboard....原创 2020-03-16 16:24:09 · 341 阅读 · 0 评论 -
HDOJ--1241--Oil Deposits
题目描述:The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divi...原创 2020-03-15 19:07:38 · 116 阅读 · 0 评论 -
Codeforces--535B--Tavas and SaDDas
题目描述:Once again Tavas started eating coffee mix without water! Keione told him that it smells awful, but he didn’t stop doing that. That’s why Keione told his smart friend, SaDDas to punish him! SaDD...原创 2020-03-13 19:56:31 · 199 阅读 · 0 评论