博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode -- Combination Sum II
阅读量:6579 次
发布时间:2019-06-24

本文共 1719 字,大约阅读时间需要 5 分钟。

Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.

Each number in C may only be used once in the combination.

Note:

  • All numbers (including target) will be positive integers.
  • Elements in a combination (a1a2, � , ak) must be in non-descending order. (ie, a1 ? a2 ? � ? ak).
  • The solution set must not contain duplicate combinations.

 

For example, given candidate set 10,1,2,7,6,1,5 and target 8

A solution set is: 
[1, 7] 
[1, 2, 5] 
[2, 6] 
[1, 1, 6] 

本题与上题Combination Sum类似,只是添加了去重部分

input output expected  
[1,1], 1 [[1],[1]] [[1]]
1 public class Solution { 2     public ArrayList
> combinationSum2(int[] num, int target) { 3 // Start typing your Java solution below 4 // DO NOT write main() function 5 ArrayList
> result = new ArrayList
>(); 6 int len = num.length, depth = 0; 7 if(len == 0){ 8 return result; 9 }10 ArrayList
output = new ArrayList
();11 int sum = 0;12 Arrays.sort(num);13 generate(result, output, sum, depth, len, target, num);14 return result;15 }16 17 public void generate(ArrayList
> result, ArrayList
output, int sum,18 int depth, int len, int target, int[] candidates){19 if(sum > target){20 return;21 }22 if(sum == target){23 ArrayList
tmp = new ArrayList
();24 tmp.addAll(output);25 result.add(tmp);26 return;27 }28 29 for(int i = depth; i < len; i++){30 sum += candidates[i];31 output.add(candidates[i]);32 generate(result, output, sum, i + 1, len, target, candidates);33 sum -= output.get(output.size() - 1);34 output.remove(output.size() - 1);35 while(i < len - 1 && candidates[i] == candidates[i+1])36 i++;37 }38 }39 }

 

转载地址:http://rcnno.baihongyu.com/

你可能感兴趣的文章
Exchange Server 2013 系列八:邮箱服务器角色DAG实战
查看>>
一个有趣的命令
查看>>
我的友情链接
查看>>
已发布13集网站开发技术视频:http://blog.sina.com.cn/s/blog_67d27f340102vf7l.html
查看>>
Mysql ibdata 丢失或损坏如何通过frm&ibd 恢复数据
查看>>
MySQL数据库的优化(二)
查看>>
Deepin OS和WIN7双启动 花屏原因一例
查看>>
UIMenuController—为UITextField禁用UIMenuController功能
查看>>
Protobuf使用不当导致的程序内存上涨问题
查看>>
【原创】扯淡的Centos systemd与Docker冲突问题
查看>>
Spring+Mybatis多数据库的配置
查看>>
给大家推荐一个免费下载名称读写ntfs软件的地方
查看>>
在MySQL数据库建立多对多的数据表关系
查看>>
突然停电或死机导致没保存的文件怎么找回
查看>>
dockerfile文件创建镜像详解
查看>>
kudu
查看>>
jquery.validate.min.js表单验证使用
查看>>
在JS中捕获console.log的输出
查看>>
Python扫描IP段指定端口是否开放(一次扫描20个B网段没问题)
查看>>
一些常用的WebServices
查看>>