DFS
甘甘甘甘甘甘甘
码不停题
展开
-
搜索|数字三角形
传送门 思路 枚举全排列所有的可能性,然后验证。 在验证的时候,有如下规律: 当n=1时,排列可得到的值为comb[1] 当n=2时,排列可得到的值为comb[1]+comb[2] 当n=3时,排列可得到的值为comb[1]+2comb[2]+comb[3] 当n=4时,排列可得到的值为comb[1]+3comb[2]+3*comb[3]+comb[4] … 实际上,一个排列能够得到的值可以写为:...原创 2020-02-11 21:47:03 · 222 阅读 · 0 评论 -
DFS|Saving James Bond - Easy Version
Saving James Bond - Easy Version This time let us consider the situation in the movie “Live and Let Die” in which James Bond, the world’s most famous spy, was captured by a group of drug dealers. He w...原创 2019-11-23 19:56:24 · 122 阅读 · 0 评论 -
DFS|用递归的方法来显示由一群人组队的所有可能方案
输入: 人群的人数n以及组队的人数k 输出: 显示所有的组合 样例输入: 5 2 样例输出: A B A C A D A E B C B D B E C D C E D E 提示: 用字符A-Z代表每个组员,每队表示为一个字符串。 思路: 首先以从A、B、C、D四个组员中选两个为例,从简单的情况进行分析。 下面列出组合情况: AB、AC、AD(A打头) BC、BD(B打头) CD(C打头)...原创 2019-11-15 12:52:36 · 905 阅读 · 0 评论 -
DFS|最大乘积
最大乘积 把 1~9 这9个数字分成两组,中间插入乘号, 有的时候,它们的乘积也只包含1~9这9个数字,而且每个数字只出现1次。 比如: 984672 * 351 = 345619872 98751 * 3462 = 341875962 9 * 87146325 = 784316925 … 符合这种规律的算式还有很多,请你计算在所有这些算式中,乘积最大是多少? public class 最大乘积 ...原创 2019-05-21 18:03:58 · 347 阅读 · 0 评论 -
DFS|路径之谜
路径之谜 小明冒充X星球的骑士,进入了一个奇怪的城堡。 城堡里边什么都没有,只有方形石头铺成的地面。 假设城堡地面是 n x n 个方格。【如图1.png】所示。 按习俗,骑士要从西北角走到东南角。 可以横向或纵向移动,但不能斜着走,也不能跳跃。 每走到一个新方格,就要向正北方和正西方各射一箭。 (城堡的西墙和北墙内各有 n 个靶子) 同一个方格只允许经过一次。但不必做完所有的方格。 如果只给出靶...原创 2019-05-21 18:02:26 · 170 阅读 · 0 评论 -
DFS\BFS汇总
DFS\BFS汇总 文章目录DFS\BFS汇总BFS迷宫最短路径打印最短的路径逃离迷宫Rescue(BFS+优先队列)Fill(BFS+优先队列)DFS路径之谜最大乘积 BFS 迷宫最短路径 迷宫最短路径 打印最短的路径 打印最短的路径 逃离迷宫 逃离迷宫 Rescue(BFS+优先队列) Rescue Fill(BFS+优先队列) Fill DFS 路径之谜 小明冒充X星球的骑士,进入了一个奇怪...原创 2019-05-21 11:49:19 · 165 阅读 · 0 评论 -
DFS|牌型种数
牌型种数 小明被劫持到X赌城,被迫与其他3人玩牌。 一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。 这时,小明脑子里突然冒出一个问题: 如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢? 请填写该整数,不要填写任何多余的内容或说明文字。 思路 先介绍一种容易想到的DFS思路 对1-13号牌选择13次,注意同号牌数目不超过4...原创 2019-03-15 21:07:11 · 213 阅读 · 0 评论 -
取球博弈
取球博弈 一开始想到的思路是,搜索所有的对战结果然后将对战结果保存在set中,再通过set来判断先手的输赢。 但是后来发现,这样做忽略了在最聪明的情况下做决策的条件所以这种思路是错的。 // 搜索全部的对战结果,但是忽略了聪明决策的条件 private static void dfs(int n, int me, int you, boolean mark) { if (n < da...原创 2019-03-20 09:05:59 · 288 阅读 · 0 评论 -
DFS|回溯法全排列,按字典序大小输出的全排列和抓取法去重的全排列
全排列 以扑克排序介绍DFS打印全排列的两种形式 回溯法全排列 A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。 要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。 统计存在的全排列个数。 private static void dfs(char[] arr, int cur) { if (cur == arr.length - 1)...原创 2019-03-07 23:02:03 · 763 阅读 · 0 评论 -
字典序输出全排列|扑克序列
扑克序列 A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。 要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。 请填写出所有符合要求的排列中,字典序最小的那个。 例如:22AA3344 比 A2A23344 字典序小。当然,它们都不是满足要求的答案。 请通过浏览器提交答案。“A”一定不要用小写字母a,也不要用“1”代替。字符间一定不要留空...原创 2019-03-07 11:57:42 · 519 阅读 · 0 评论 -
DFS|地宫寻宝
地宫寻宝 问题描述 X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。 地宫的入口在左上角,出口在右下角。 小明被带到地宫的入口,国王要求他只能向右或向下行走。 走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。 当小明走到出口时,如果他手中的宝贝恰好是k件,则这些宝贝就可以送...原创 2019-03-09 17:09:12 · 418 阅读 · 0 评论 -
DFS|油田问题
Description 某石油勘探公司正在按计划勘探地下油田资源,工作在一片长方形的地域中。他们首先将该地域划分为许多小正方形区域,然后使用探测设备分别探测每一块小正方形区域内是否有油。若在一块小正方形区域中探测到有油,则标记为’@’,否则标记为’*’。如果两个相邻区域都为1,那么它们同属于一个石油带,一个石油带可能包含很多小正方形区域,而你的任务是要确定在一片长方形地域中有多少个石油带。 所谓相...原创 2019-03-08 20:21:36 · 1148 阅读 · 0 评论 -
DFS|部分和(位向量法生成子集)
部分和 题目描述 给定a1,a2,…,an,判断是否可以从中选出若干数,使它们的和恰好为k. 样例: 输入 n = 4 a = {1,2,4,7} k = 13 输出 YES Solution 1 求出a的全部子集 判断是否存在子集之和等于k private static boolean f(int[] arr, int k) { ArrayList&amp;amp;lt;ArrayList&amp;amp;lt;Int...原创 2019-02-17 15:34:24 · 292 阅读 · 0 评论 -
DFS|数独
问题描述 你一定听说过“数独”游戏。 如下图所示,玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个同色九宫内的数字均含1-9,不重复。 数独的答案都是唯一的,所以,多个解也称为无解。 本图的数字据说是芬兰数学家花了3个月的时间设计出来的较难的题目。但对会使用计算机编程的你来说,恐怕易如反掌了。 本题的要求就是输入数独题目,程序输出数独的唯一解。我们保证所有...原创 2019-02-16 18:41:20 · 773 阅读 · 0 评论