【发布时间】:2020-12-20 15:05:22
【问题描述】:
给定两个整数n和k,返回1 2 3 ... 中k个数的所有可能组合n。确保对组合进行排序。
我的代码如下:
void answer(vector<vector<int>> op, vector<int> temp, int index, int A, int B){
if(!B){
op.push_back(temp);
return;
}
for(int i=index; i<=(A-B+1); i++){
temp.push_back(i);
answer(op, temp, i+1, A, B-1);
temp.pop_back();
}
return;
}
vector<vector<int> > Solution::combine(int A, int B) {
vector<int> temp;
vector<vector<int>> op;
if(B>A)
return op;
answer(op, temp, 1, A, B);
return op;
}
它甚至没有通过 A=B=1 的简单情况,因为它返回 NULL 而不是输出 [1]。
【问题讨论】:
-
尝试创建一个使用这些函数的minimal reproducible example,并对导致其失败的数据进行硬编码。然后使用调试器逐语句逐句执行代码,同时监视变量及其值。这是查找和修复此类错误的正常方法。
标签: c++ computer-science