递归回溯中的一些套路( 三 )

通过是通过了 , 但是真的慢成狗啊 。 分析一下原因所在 。 假设 n = 100 k= 90 i = 15 , list 里面就 3 个数据 。 按照上面的代码 , 我们还需要继续循环 85...

通过是通过了 , 但是真的慢成狗啊 。

分析一下原因所在 。 假设 n = 100 k= 90 i = 15 , list 里面就 3 个数据 。

按照上面的代码 , 我们还需要继续循环 85 次 。 但是想一下 , 即使后面的循环每次都加一个数据 , 最后也才 88 个数据 。

不能形成一组解 。 也就是说这些循环都是在做无用功 , 因此引出一个很重要的知识点 。 剪枝循环的终止条件不应该是 i<=n 应该是 i-1 +(k-list.size()) <= n 。

因此代码如下:

最后运行结果如下 。

本文作者:reedfan

声明:本文归作者版权所有 , 如需转载请联系 。

特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。