问题是我正在实现一个递归,其中我必须使用NULLvalue 来指定正在遍历的递归分支无效。
NULL但在 C++ 中,当返回类型是容器(在我的例子中是向量容器)时,我们无法返回。
那么有没有解决该问题的方法,或者我是否必须使用其他逻辑?
代码:
#include<iostream>
#include<vector>
std::vector<int> howSum(int target,std::vector<int> in){
if(target < 0 ) return {-1};
if(target == 0) return {};
for(int num : in){
int remainder = target - num ;
std::vector<int> remResult = howSum(remainder,in);
if(remResult[0] != -1 || remResult.empty()){
remResult.push_back(num);
return remResult;
}
}
return {-1};
}
int main(){
std::vector<int> v = {2,4,3};
int targetSum = 8;
std::vector<int> r = howSum(targetSum,v);
for(int o : r)
std::cout<<o<<" ";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编辑:
我非常感谢所有的建议和解决方案,但我想要的是一个原始的解决方案,不使用更新的 …