![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dfs
I_Nice2cu
Nice2cu
很高兴见到你
展开
-
组合总和(I和II)
给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。注意:解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8, 输出: [ [1,1,6], [1,2,5],[1,7], [2,6] ]示例 2:输入: candidates = [2,5,2,1,2], target = 5,.原创 2021-08-22 18:47:06 · 193 阅读 · 0 评论 -
不同路径(dp和dfs)
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向下 -> 向下向下 -> 向下 -> 向右向下 -> 向右 ->原创 2021-04-21 22:27:34 · 235 阅读 · 0 评论 -
2021_04_18网易互娱笔试第一题
import java.util.Scanner;public class Main { /* 男男、女女、男女乒乓球比赛 每个部门,3名男,3名女 双方两名球员的比赛实力值之和高的一方会获胜 (相等则部门A的队伍会获胜) 使部门B在三场比赛中的至少两场能获胜,有多少种不同的比赛安排方案 (两个比赛安排方案,只要存在任意一场比赛中任意一位球员不同, 则视为方案不同) 测试用例: 4 100 50 40 100 5原创 2021-04-18 20:21:31 · 274 阅读 · 0 评论 -
括号生成(dfs+回溯)
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]提示:1 <= n <= 8来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/generate-parenthesesclass Solution { pu原创 2021-04-17 01:13:01 · 93 阅读 · 0 评论 -
幻方(dfs+回溯)
幻方是把一些数字填写在方阵中,使得行、列、两条对角线的数字之和都相等。欧洲最著名的幻方是德国数学家、画家迪勒创作的版画《忧郁》中给出的一个4阶幻方。他把1,2,3…16这16个数字填写在4×4的方格中。如下图所示,即:16 ? ?13? ? 11 ?9 ? ? *?15 ? 1表中有些数字已经显露出来,还有些用 ?和 * 代替。请你计算出 ? 和 * 所代表的数字。并把 * 所代表的数字作为本题答案提交import java.util.Arrays;import java.ut原创 2021-04-08 23:17:03 · 360 阅读 · 0 评论 -
蜡烛燃烧(阿里3.15笔试)
现在有一根蜡烛长n厘米,从一端点火,然后对n-1个位置进行随机切割,将蜡烛分为两段,x和n-x,等较短的一端燃尽后(这里假设x段比较短,较短的一段燃尽后,两段蜡烛长度就变成了0和n-x-x了,注意这里两段蜡烛是同时在燃烧!!),再对剩余的蜡烛(即n-x-x段)进行下一段切割注意:最多只能切割两次一种切割方案会产生一个蜡烛燃烧的时间t求所有切割方案下蜡烛燃烧时间的期望值注意:有可能切割方案的概率不同(陷阱)下面献上我的代码和思路,欢迎一起探讨public class Main { /*原创 2021-03-31 23:53:26 · 293 阅读 · 0 评论 -
分割回文串(dfs+回溯)
给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。回文串 是正着读和反着读都一样的字符串。示例 1:输入:s = “aab”输出:[[“a”,“a”,“b”],[“aa”,“b”]]示例 2:输入:s = “a”输出:[[“a”]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/palindrome-partitioningclass Solution { //分割回文串原创 2021-03-30 18:33:31 · 54 阅读 · 0 评论 -
不同路径 ||| (dfs+回溯)
在二维网格 grid 上,有 4 种类型的方格:1 表示起始方格。且只有一个起始方格。2 表示结束方格,且只有一个结束方格。0 表示我们可以走过的空方格。-1 表示我们无法跨越的障碍。返回在四个方向(上、下、左、右)上行走时,从起始方格到结束方格的不同路径的数目。每一个无障碍方格都要通过一次,但是一条路径中不能重复通过同一个方格。示例 1:输入:[[1,0,0,0],[0,0,0,0],[0,0,2,-1]]输出:2解释:我们有以下两条路径:(0,0),(0,1),(0,2),(0,原创 2021-03-30 15:48:04 · 135 阅读 · 0 评论 -
复原IP地址(dfs)
给定一个只包含数字的字符串,用以表示一个 IP 地址,返回所有可能从 s 获得的 有效 IP 地址 。你可以按任何顺序返回答案。有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。例如:“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址,但是 “0.011.255.245”、“192.168.1.312” 和 “192.168@1.1” 是 无效 IP 地址。示例 1:输入:s = “2552551113原创 2021-03-18 21:03:54 · 209 阅读 · 0 评论 -
机器人的运动范围(dfs)
地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?示例 1:输入:m = 2, n = 3, k = 1输出:3示例 2:输入:m = 3, n原创 2021-03-16 21:09:19 · 135 阅读 · 0 评论 -
树的子结构(dfs)
输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A: 3/ \4 5/ 1 2给定的树 B:4/1返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。示例 1:输入:A = [1,2,3], B = [3,1]输出:false示例 2:输入:A = [3,4,5,1,2], B = [4,1]输出:trueclass Solution {原创 2021-03-16 00:25:57 · 55 阅读 · 0 评论 -
正则表达式匹配(dfs)
请实现一个函数用来匹配包含’. ‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但与"aa.a"和"ab*a"均不匹配。示例 1:输入:s = “aa”p = “a”输出: false解释: “a” 无法匹配 “aa” 整个字符串。示例 2:输入:s = “aa”p = “a*”输出: true解释: 因为 ‘*’ 代表原创 2021-03-15 23:49:49 · 259 阅读 · 0 评论 -
矩阵中的路径(深度优先搜寻+剪枝)
请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[[“a”,“b”,“c”,“e”],[“s”,“f”,“c”,“s”],[“a”,“d”,“e”,“e”]]但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格原创 2021-03-05 23:47:00 · 120 阅读 · 0 评论