【发布时间】:2021-12-24 12:20:37
【问题描述】:
问题是从给定数组中返回任何一个组合,总和为目标。我是 C++ 新手。如何完成下面的函数howSum()?我不能在这里返回 null,因为返回类型是向量。我也无法通过向量。
JavaScript:
const howSum = (targetSum, numbers) => {
if (targetSum === 0) return [];
if (targetSum < 0) return null;
for (let num of numbers) {
const remainder = targetSum - num;
const remainderResult = howSum(remainder, numbers);
if (remainderResult !== null)
{
return [...remainderResult, num];
}
}
return null;
};
C++:
vector<int> howSum(int targetSum, vector<int> numbers)
{
if(targetSum == 0) return {};
if(targetSum < 0) return; //can't return null here in C++
for (int i = 0; i < numbers.size(); i++)
{
int remainder = targetSum - numbers[i];
vector<int> remainderResult = howSum(remainder, numbers);
if(pass)
{
pass
}
}
}
【问题讨论】:
-
请edit您的问题并直接在问题中以文本形式提供所有代码。
-
您需要区分
null返回和空std::vector吗? -
@StephenNewell 完成
-
@Galik 是的,我也遇到了这个问题。如何在“if 语句”中捕获返回值是否为“null”或“空向量”?
-
你可以使用
std::optional。
标签: c++ recursion vector data-structures