【发布时间】:2014-10-11 18:25:33
【问题描述】:
我正在使用下面给出的函数递归检查是否存在(在向量中)总和为给定数字的子集。但是,我想对其进行一项修改。我在我的 main 方法中使用下面的 sn-p 打印 true 或 false。如何将其合并到我的检查函数中,以便我在 main 方法中所做的只是调用该函数?
if (check(vec, n, sum) == true)
cout << "true" << endl;
else
cout << "false" << endl;
我的功能是检查子集是否存在。
bool check(vector<int> vec, int sum, int n)
{
if (sum == 0)
return true;
if (n == 0 && sum != 0)
return false;
if (vec[n-1] > sum)
return check(vec, n-1, sum);
return check(vec, n-1, sum || check(vec, n-1, sum-vec[n-1]));
}
【问题讨论】: