我试图了解这种方法的时间和空间复杂度。 我阅读了以下 post 试图解释递归时间/空间复杂性。 尽管如此,我仍然不确定如何开始确定这个问题的空间和时间复杂度。
std::vector<std::vector<int>> fresult;
void findSum(int index,int target, std::vector<int> originals,std::vector<int> possiblities)
{
if (index == originals.size())
{
//Check if the target has been met
if (target == 0)
{
fresult.push_back(possiblities);
}
return;
}
if (originals[index] <= target)
{
possiblities.push_back(a);
findSum(index, target - originals[index], originals, possiblities);
possiblities.pop_back();
}
findSum(++index, target, originals, possiblities);
}
关于如何确定这个问题的时间/空间复杂度的任何建议