i = start;
while(i <= end and end - i + 1 >= r - index):
data[index] = arr[i];
combinationUtil(arr, data, i + 1,
end, index + 1, r);
i += 1;
我很难理解为什么需要“end-I+1>;=r-index”这个条件,我试过运行代码,不管有没有,它都会产生相同的输出,我想知道是什么边缘情况导致这个条件返回False
The full code is available here.
Tags:
尝试将变量分成更容易理解的部分,例如
现在我们可以这样解释:
因此,如果
i
接近给定数组的end
,并且没有足够的值来打印完整的组合,那么循环(和函数)将停止。让我们看一个例子:相关问题 更多 >
编程相关推荐