摘要: 剪枝技巧前面有写过。加强印象 class Solution { LinkedList<List<Integer>> ans=new LinkedList<>(); LinkedList<Integer> path=new LinkedList<>(); public List<List<Intege 阅读全文
posted @ 2021-04-24 22:26 wsshub 阅读(23) 评论(0) 推荐(0)
摘要: 每次被dfs(nums,i+1);//每次都这样,这里不是cur,是i这个卡住,看了上次写的才知道是这里写错了,不是第一次了无语。 class Solution { LinkedList<List<Integer>> ans=new LinkedList<>(); LinkedList<Intege 阅读全文
posted @ 2021-04-24 22:17 wsshub 阅读(34) 评论(0) 推荐(0)
摘要: 第一次还申请了一个used[]数组,借鉴了全排列去重的思路。 看了题解才知道,排序后只要判断i>begin就行了,妙啊。 放过不同层级的相同数字,不放过同一层级的相同数字,具体解释在评论区: 40题解 class Solution { LinkedList<List<Integer>> ans=ne 阅读全文
posted @ 2021-04-24 21:46 wsshub 阅读(73) 评论(0) 推荐(0)
摘要: 组合问题的变形 class Solution { LinkedList<List<Integer>> ans=new LinkedList<>(); LinkedList<Integer> path=new LinkedList<>(); public List<List<Integer>> com 阅读全文
posted @ 2021-04-24 21:01 wsshub 阅读(70) 评论(0) 推荐(0)
摘要: 组合问题。不需要used[]数组,限定下一次循环/搜索的起点即可. 本题不含重复数字且每个数字不可重复选择. 本题有另一种思路,即对每个数字有选与不选两种选择。 还有提前终止,时间优化很明显: 事实上,如果 n = 7, k = 4,从 55 开始搜索就已经没有意义了,这是因为:即使把 55 选上, 阅读全文
posted @ 2021-04-24 20:18 wsshub 阅读(83) 评论(0) 推荐(0)
摘要: 与不含重复数字的全排列相比,在于: 排序; 添加对上一数字的判断 class Solution { LinkedList<List<Integer>> ans=new LinkedList<>(); LinkedList<Integer> path=new LinkedList<>(); boole 阅读全文
posted @ 2021-04-24 19:23 wsshub 阅读(135) 评论(0) 推荐(0)
摘要: 这是无重复数字的全排列。 注意递归函数中的循环(循环起始位置)和used[]数组的使用 class Solution { //dfs和回溯 LinkedList<List<Integer>> res=new LinkedList<>(); LinkedList<Integer> path =new 阅读全文
posted @ 2021-04-24 19:08 wsshub 阅读(209) 评论(0) 推荐(0)