摘要:
☆☆☆思路:与排列问题不同,组合问题只需要从当前位置往后搜索。而排列问题每次都需要从头寻找,需要用vis数组记录访问过的元素。 class Solution { public List<List<Integer>> combine(int n, int k) { List<List<Integer> 阅读全文
摘要:
思路1:回溯搜索全排列,使用Set暴力去重。 ☆☆☆思路2:回溯搜索 + 剪枝。 对原数组排序,保证相同的数字都相邻,然后每次填入的数一定是这个数所在重复数集合中「从左往右第一个未被填过的数字」 代码1:回溯搜索 + Set去重 代码1.1 ——交换位置确定数字(耗时:30ms) class Sol 阅读全文
摘要:
【举一反三】: 剑指27.字符串的排列 ☆☆回溯算法入门级经典题目,理论讲解及分类习题:回溯算法入门级详解 + 练习(持续更新) 思路1:标记数组 思路2:交换位置。相比思路1,空间复杂度低。 class Solution { public List<List<Integer>> permute(i 阅读全文