请问在力扣上运行能通过测试案例,自己写了输入输出之后就会存在一些问题,应该是vetctor相关的,具体是哪里出了问题呢?
#include
#include
#include
using namespace std;
class Solution {
public:
vectorint>> result;
vector<int> path;
void backTracing(vector<int>& candidates, int target, int sum, int index) {
if (target == sum) {
result.push_back(path);
return;
}
for (int i = index; i < candidates.size() && sum+ candidates[i] <= target; i++) {
//used[i - 1] == false:表示i-1元素已经被使用过???
if (i > index && candidates[i] == candidates[i - 1] ) {
continue;
}
sum += candidates[i];
path.push_back(candidates[i]);
backTracing(candidates, target, sum, i + 1);
sum -= candidates[i];
path.pop_back();
}
}
vectorint>> combinationSum(vector<int>& candidates, int target) {
vector<bool> used(candidates.size(), false);
result.clear();
path.clear();
sort(candidates.begin(), candidates.end());
backTracing(candidates, target, 0, 0);
return result;
}
};
int main() {
Solution s;
vector<int> arr = { 2, 5, 2, 1, 2};
vectorint>> res = s.combinationSum(arr, 5);
vectorint>> res = s.combinationSum(arr, 5);
for (int i = 0; i < res.size(); i++) {
for (int j = 0; j < res[i].size(); j++) {
cout << res[i][j] << " ";
}
cout << endl;
}
return 0;
}
参考GPT和自己的思路:
您好,根据您提供的代码,暂时无法看出具体的输入输出问题所在。如果您能提供更详细的问题描述和运行结果,我将更容易解决您的问题。此外,建议您将代码复制到力扣的在线编辑器中,并运行一遍调试,排除可能存在的语法或逻辑错误。
可以说完整一些么,没看懂