![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
递归回溯
回溯递归
JingleLiA
这个作者很懒,什么都没留下…
展开
-
括号生成
题目链接:括号生成题目描述:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例:输入:n = 3输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]代码:class Solution{ int n; char[] cur = new char[n*2]; List<String> res = new ArrayList(); solve(cur,原创 2020-10-22 11:22:36 · 256 阅读 · 0 评论 -
蓝桥杯-地宫取宝
题目描述:X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。地宫的入口在左上角,出口在右下角。小明被带到地宫的入口,国王要求他只能向右或向下行走。走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。当小明走到出口时,如果他手中的宝贝恰好是k件,则这些宝贝就可以送给小明。请你帮小明算一算,在给定的局面...原创 2018-03-24 16:46:28 · 523 阅读 · 0 评论 -
古堡算式
福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!” 华生:“我猜也是!” 于是,两人沉默了好久,还是没有算出合适的结果来。 请你利用计算机的优势,找到破解的答案。 把 ABCDE 所代表的数字写出来。 答案写在“解答.txt”原创 2018-02-04 11:18:02 · 361 阅读 · 0 评论 -
leetcode电话号码的字母组合
题目链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/题目描述:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是.原创 2020-06-05 00:07:42 · 185 阅读 · 0 评论 -
全排列和去重
对于c++而言,有一个可以直接调用的方法,就是对序列进行全排列并且去重,就是next_permtation();这个就不多说了,那么这里我用直接用java自己手写一个呢,全排列表示把集合中元素的所有按照一定的顺序排列起来,使用P(n, n) = n!表示n个元素全排列的个数(假设集合中没有重复元素)。例如:{1, 2, 3}的全排列为:123;132;213;231;...原创 2018-02-21 21:38:56 · 1415 阅读 · 0 评论 -
leetcode 面试题64 求和
leetcode 面试题64 求和题目描述:面试题64. 求1+2+…+n求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45限制:1 <= n <= 10000题目分析:这题真是够无聊的,我也是够无聊的,没办法说好的每日一题QAQ,既然题目给出了这么多限制,就使用递归呗,插一句,高斯定理要气死了不能使用if原创 2020-06-02 19:55:02 · 149 阅读 · 0 评论 -
leetcode679组合值为24
思路:先选2个数并计算结果,用这个新的值再和剩下的数继续组合计算(同时把原来2个数移除),最后剩下一个数,即最后的结果,判断是否为24即可(注意浮点数)。又加法和乘法满足交换律,因此可以进行剪枝,同时除法运算要判断除数是否为0。当某个组合不满足时进行回溯,此时要把原来加入的数移除。import java.util.*;public class Main { static Scann...原创 2020-04-19 00:37:05 · 349 阅读 · 0 评论 -
正则表达式匹配
leetcode第十题题解import java.util.Scanner;public class regexMatch { static Scanner in = new Scanner(System.in); static boolean solve(String ss,String pp,int s,int p) { if(p==pp.length()) {// 模式串到...原创 2020-04-14 19:26:22 · 241 阅读 · 0 评论 -
求解数组中几个数之和为给定值
描述:求解数组中使得某几个数的和为给定值,数的数目没有限制,可能为1个或者n个,递归求解(实质就是搜索),并对解空间进行分支限界来减少运行时间思路:没有进行限定的条件下,我们就直接对所有可能进行搜索,但是我们可以来分析一下,什么情况下可以选择a[i],什么情况下又不选择呢?可以得出,如果has(表示当前已经累加的和)+a[i]<=sum&&has+r(表示数组剩余部分的和...原创 2018-08-04 15:50:27 · 2813 阅读 · 0 评论 -
2的次幂表示--递归处理
题目描述 任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=2^7+2^3+2^0现在约定幂次用括号来表示,即a^b表示为a(b)此时,137可表示为:2(7)+2(3)+2(0)进一步:7=2^2+2+2^0 (2^1用2表示)3=2+2^0 所以最后137可表示为:2(2(2)+...原创 2018-03-10 21:42:17 · 255 阅读 · 0 评论 -
棋盘问题 --dfs加回溯
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n 当为-1 -1时表示输入结束原创 2017-11-04 12:13:55 · 297 阅读 · 0 评论 -
放苹果 --动态规划、递归
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。Input第一行是测试数据的数目t(0 Output对输入的每组数据M和N,用一行输出相应的K。Sample Input17 3Sample Output8分析:设f(m,n)为m个苹果,n个盘子的原创 2017-10-21 22:36:44 · 434 阅读 · 0 评论 -
前进杀蝙蝠--简单递归
轻松通过墓碑,进入古墓后,才发现里面别有洞天。 突然,Yifenfei发现自己周围是黑压压的一群蝙蝠,个个扇动翅膀正准备一起向他发起进攻! 形势十分危急! 好在此时的yifenfei已经不是以前那个经常被lemon抢走MM的菜鸟了!面对众多蝙蝠的嗜血狂攻,只见yifenfei使出轻灵的剑法,刷,刷,刷,瞬间搞定…… 现已知yifenfei使用了2招(剑招A和剑招B):剑招A,一招能原创 2017-10-21 20:13:11 · 532 阅读 · 0 评论 -
蟠桃记 --简单递归
喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题! 什么问题?他研究的问题是蟠桃一共有多少个! 不过,到最后,他还是没能解决这个难题,呵呵^-^ 当时的情况是这样的: 第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪原创 2017-10-21 19:03:05 · 1065 阅读 · 0 评论 -
A-素数环dfs
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原创 2017-10-28 09:13:17 · 330 阅读 · 0 评论