Loading

摘要: 题目描述 class Solution { public: vector<vector<int>> res; vector<int> path; void backtrace(vector<int>& nums, int used[]){ if(path.size() == nums.size()) 阅读全文
posted @ 2024-03-09 17:40 SaTsuki26681534 阅读(20) 评论(0) 推荐(0)
摘要: 问题描述 排列问题的难点在于排列要求有序,并且在写的时候发现,如何在选择后面的元素后回过头去选择前面的元素,这是很难处理的,在前面的组合问题中,我们都是用startindex来处理,而在这里就行不通了。 容易想到的一种解决方法就是另外设置一个与nums长度相同的used数组来记录元素的遍历情况,也很 阅读全文
posted @ 2024-03-09 16:52 SaTsuki26681534 阅读(23) 评论(0) 推荐(0)
摘要: 题目 代码如下: class Solution { public: vector<vector<int>> res; vector<int> path; bool occured(vector<int>& nums, int key, int startindex){ for(int i = sta 阅读全文
posted @ 2024-03-09 16:20 SaTsuki26681534 阅读(23) 评论(0) 推荐(0)
摘要: 题目描述 可以套回溯模版的题,但是在写的过程中发现,如果数组中有多个相同元素分散存在的话,就会有一些子集无法得到 像这里的1,4,4,如果对数组从左到右枚举的话是无论如何都得不到的。 对这样的数组使用排序函数后,造成的效果就是相同的元素都堆在了一起,这样就能正确地得到所有子集。 class Solu 阅读全文
posted @ 2024-03-09 15:08 SaTsuki26681534 阅读(24) 评论(0) 推荐(0)
摘要: 问题描述 在这个题中,因为结果的数据类型为vector<string>所以直接在s中添加分割点比较方便, 先看一下代码: class Solution { private: vector<string> result;// 记录结果 // startIndex: 搜索的起始位置,pointNum:添 阅读全文
posted @ 2024-03-09 11:38 SaTsuki26681534 阅读(48) 评论(0) 推荐(0)
摘要: 题目描述 一定要尽量按照模版写,不然的话稍微有点问题就很难改,把模版的思路搞清楚。 结束条件,backtrace函数的参数和同层循环体内的操作都是相辅相成的,一个写的不对也会影响到其他的地方。 如果按一种方案写实在改不正确,可以试着重新想一套新的三要素方案,不然可能怎么也改不好 贴一个第一遍写的错误 阅读全文
posted @ 2024-03-08 00:00 SaTsuki26681534 阅读(23) 评论(0) 推荐(0)
摘要: 问题描述 注意,如果数组里有两个元素的值相同,那么这两个元素是可以出现在同一个组合里的: 但是:如果按前面的思路分析的话,会发现结果中出现很多相同的组合。 像这样: 这很明显是由于两个相同的1造成的,因为当前的startindex对应第一个1时,向下一层递归后,starindex定位的还是1,。 如 阅读全文
posted @ 2024-03-07 21:39 SaTsuki26681534 阅读(43) 评论(0) 推荐(0)
摘要: 题目描述 #include<iostream> #include<vector> using namespace std; vector<vector<int> > res; vector<int> path; int accumulate(vector<int> path){ int sum; f 阅读全文
posted @ 2024-03-07 16:29 SaTsuki26681534 阅读(18) 评论(0) 推荐(0)
摘要: 问题描述 class Solution { public: vector<string> res; string path; // char A[26] = {'a','b','c','d','e','f','g', // 'h','i','j','k','l','m','n','o','p','q 阅读全文
posted @ 2024-03-07 12:22 SaTsuki26681534 阅读(19) 评论(0) 推荐(0)
摘要: 题目描述 2. 以下是回溯算法的模版 class Solution { private: vector<vector<int>> res; vector<int> path;//这个变量名还是设为path更合适 void backtrace(int n, int k, int startindex) 阅读全文
posted @ 2024-03-06 23:37 SaTsuki26681534 阅读(23) 评论(0) 推荐(0)