H5W3
当前位置:H5W3 > 其他技术问题 > 正文

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]);

}

}
}
}

本文地址:H5W3 » 40. Combination Sum II runtime error

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址