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

你可能感兴趣的:(backtracking——40. 组合总和 II)