偃师制作网站,_网站建设网站,您提交的网站域名无备案,在什么网站可以接设计做一#xff1a;题目 二:思路
1.总体来看这是一个解空间为k层的排列树 第一层为1~9 2.递归函数的参数和返回值 1:返回值#xff1a;vectorvector res 每次的求解结果#xff1a;vector path 2:参数#xff1a; backtacking(int k,int n,int index,int sum)…一题目 二:思路
1.总体来看这是一个解空间为k层的排列树 第一层为1~9 2.递归函数的参数和返回值 1:返回值vectorvector res 每次的求解结果vector path 2:参数 backtacking(int k,int n,int index,int sum) 这里需要的index是 因为我们每次往下递归的时候 我们的返回在 缩小 3.递归函数的终止条件为 k path.size(),这里可能使 结果并不满足 n sum 但也要结束递归寻找下一个可行解即可
4.横向单层的for循环的为1~9纵向为递归的k层
三:上码
class Solution {
public:vectorvectorint ans;vectorint path;void backtacking(int k,int n,int index,int sum){if (path.size() k) {if (n sum) ans.push_back(path);return;//如果 path.size() k 而 n ! sum 直接结束本次循环 }for (int i index; i 9; i) {sum i;path.push_back(i);backtacking(k,n,i1,sum);path.pop_back();//sum - i;//注意的是每次往上回溯的时候我们都需要将上一层存进去的剪掉为其他可行解提供空间}}vectorvectorint combinationSum3(int k, int n) {/*思路:1.总体来看这是一个解空间为k层的排列树 第一层为1~92.递归函数的参数和返回值1:返回值vectorvectorint res每次的求解结果vectorint path2:参数backtacking(int k,int n,int index,int sum)这里需要的index是 因为我们每次往下递归的时候 我们的返回在 缩小3.递归函数的终止条件为k path.size(),这里可能使 结果并不满足 n sum 但也要结束递归寻找下一个可行解即可4.横向单层的for循环的为1~9纵向为递归的k层 */backtacking(k,n,1,0);return ans;}
};