backtracking——40. 组合总和 II

这道题与39不一样的是,元素不能重复使用,但还是没有顺序的,所以自然而然想到的是每次把start+1就好了。

但这里我们还需要把重复的过滤掉,过滤的方法是:

首先将数组排序——Arrays.sort(candidates),这样一样的数字是在一起的;

其次,我们用一个判断去掉相同元素导致的重复——if(i > 0 && candidates[i] == candidates[i - 1] && !visted[i - 1]),这个和47题有一点点像。

其他的与39题一样。


code:

https://github.com/hanleirx/LeetCode/blob/master/40.%20%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8C%20II

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。