40. Combination Sum II runtime error

新手上路,请多包涵

1.我尝试了如下代码,但是遇到while(i<nums.length-1&&nums[i]==nums[++i]);就开始超时。目前还没分析出原因。
2.public class Solution {

List<List<Integer>> res;
public List<List<Integer>> combinationSum2(int[] candidates, int target) {
    res = new LinkedList<List<Integer>>();
    List<Integer> tmp = new LinkedList<Integer>();
    Arrays.sort(candidates);
    helper(candidates,target,0,tmp);
    return res;
}
private void helper(int[]nums,int target,int index,List<Integer> tmp){
    if(target<0){
        return;
    }else if(target == 0){
        List<Integer> oneComb = new LinkedList<Integer>(tmp);

       res.add(oneComb);

}else{

for(int i = index; i < nums.length; i++){
              
            tmp.add(nums[i]); 
           
            helper(nums, target - nums[i], i+1, tmp);
            tmp.remove(tmp.size() - 1);
          while(i < nums.length&&nums[i] == nums[++i]);

}

}
}
}

阅读 1.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏