这道题与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
网友评论