递推与递归
递推与递归
__anonymous_
Stay hungry, stay foolish.
展开
-
模版 ----- 一维指数型枚举 & 排列型枚举 & 组合型枚举
应用场景给定x个方格,每个方格可以存放0或者1两个状态(状态可以多个不一定只有2个)枚举出这n个方格的所有状态情况递归树模型:标准的x叉树,每个分支表示对于同一个方格的所有不同状态选择情况时间复杂度:O(xn)O(x^n)O(xn)代码模版import java.util.*;public class Main { Scanner s = new Scanner(System.in); // 方格数量 int x; // 每个方格对应的状态原创 2020-09-21 22:28:00 · 260 阅读 · 0 评论 -
AcWing 116. 飞行员兄弟(二维指数型枚举)
116. 飞行员兄弟思路:通过二进制串暴力枚举所有操作情况特判一下每次操作结束后的结果是否符合题意时间复杂度:216∗(16∗7+)2^{16}*(16*7+)216∗(16∗7+)import java.util.*;import java.io.*;public class Main { Scanner s = new Scanner(System.in); BufferedWriter log = new BufferedWriter(new OutputStrea原创 2020-09-20 01:25:16 · 136 阅读 · 0 评论 -
AcWing 1209. 带分数(排列型枚举)
1209. 带分数题意:以n=a+bcn=a+\frac{b}{c}n=a+cb的形式表示一个整数其中a、b、c的每一位数字包含完1~9且不重复思路:暴力枚举出9个数的全排列,然后用一个数组保存(全排列搜索模型)从全排列的结果中用两重循环暴力分解出三段,每段代表一个数验证枚举出来的三个数是否满足题干条件,若满足则计数public class Main { Scanner s = new Scanner(System.in); // 输入数 int n;原创 2020-09-19 17:19:14 · 255 阅读 · 0 评论 -
AcWing 1208. 翻硬币
1208. 翻硬币题意:给定一个初始字符串(只含*和o字符)给定一个目标字符串(只含*和o字符)翻转初始字符串,每次会同时翻转其相邻的两个字符求初始字符串翻转到目标字符串的最小翻转次数输入的数据保证一定有解思路:本题相当于费解的开关的一维简化问题同时扫描两个串(最后一个字符不用管),只要字符不相同就翻转初始字符串当前位置相邻两个字符import java.util.*;class Main { Scanner s = new Scanner(System.in);原创 2020-09-19 14:20:38 · 98 阅读 · 1 评论 -
AcWing 95. 费解的开关(指数型枚举)
95. 费解的开关题意:给定一个5x5的方格,共25盏灯每盏灯有开和关两种状态每次操作一盏灯时,以该灯为中心的十字形状范围的灯都会改变状态找到用最少的操作步数使所有的灯都亮着,当步数超过6时返回-1思路:枚举出对第一行的所有操作情况(指数类型枚举模型),注意这里不是枚举第一行的灯的状态根据推导可知:当第一行操作完毕确认完的状态后,后面除了最后一行的每一行操作就已经确定了,即必须在上一行关灯的下方一个位置进行状态变化当操作到最后一行到时候,前面的n-1行已经全亮最后只需要特判一下最后原创 2020-09-18 18:45:40 · 286 阅读 · 0 评论 -
LeetCode 339. 嵌套列表权重和(DFS)
339. 嵌套列表权重和思路:扫描给定的列表判断元素是单一数字还是嵌套列表如果是单一数字则乘上对应deep累加到sum中如果是嵌套列表,则去括号,deep++depthSum(List<NestedInteger> nestedList)中的nestedList表示所求的当前列表递归树模型:/** * // This is the interface that allows for creating nested lists. * // You should not im原创 2020-09-14 23:08:01 · 119 阅读 · 0 评论 -
递归与递推类型题小结
92. 递归实现指数型枚举思路:把输入的n当作有n个空位每一个空位有两种状态,是否选取当前位置对应的值到集合中递归实现:按顺序从头依次讨论每一个位置的选取情况,画出递归树递归树:代码实现:import java.util.*;class Main { // 记录所有位置总数 static int n; // 记录每一个位置选择的情况,0表示还没考虑到,1表示选择它,2表示不选择 static int[] st; public s原创 2020-09-14 21:08:07 · 348 阅读 · 0 评论