[LeetCode 216] Combination Sum III
2015-09-16 15:35
309 查看
Find all possible combinations of k numbers that add up to a number
n, given that only numbers from 1 to 9 can be used and each combination should be a unique set of numbers.
Ensure that numbers within the set are sorted in ascending order.
Example 1:
Input: k = 3, n = 7
Output:
Example 2:
Input: k = 3, n = 9
Output:
Solution:
DFS, two conditions for basic case, one is sum , second is k number
n, given that only numbers from 1 to 9 can be used and each combination should be a unique set of numbers.
Ensure that numbers within the set are sorted in ascending order.
Example 1:
Input: k = 3, n = 7
Output:
[[1,2,4]]
Example 2:
Input: k = 3, n = 9
Output:
[[1,2,6], [1,3,5], [2,3,4]]
Solution:
DFS, two conditions for basic case, one is sum , second is k number
public List<List<Integer>> combinationSum3(int k, int n) { List<List<Integer>> result = new ArrayList<>(); List<Integer> cur = new ArrayList<>(); if(k<1 || n<1 || k>n) return result; dfs(result, cur, 0, k, n, 1); return result; } public void dfs(List<List<Integer>> result, List<Integer> cur, int sum, int k, int n, int level) { if(sum == n && k==0) { result.add(new ArrayList(cur)); return; } else if(sum> n || k<0) return; for(int i=level;i<=9;i++){ cur.add(i); dfs(result, cur, sum+i, k-1, n, i+1); cur.remove(cur.size()-1); } }
相关文章推荐
- 数据库单元测试的一点尝试
- Oracle数据库异机升级
- ASP.NET MVC4系列验证机制、伙伴类共享源数据信息(数据注解和验证)
- Comparable与Comparator
- ASP.NET MVC3手把手教你构建Web
- JDBC连接MySQL例子
- OC-oc语言简介,类和对象
- linux之gcc基础
- css3--border属性
- Cocoa Touch 层
- git基础学习3(github)
- 《程序员面试金典》像素翻转
- Varnish 问题点 与 技术方案 Varnish 优劣分析
- Objective-C入门11:类的三大特性(封装,继承,多态)
- HOG+SVM
- Display RadioButtonFor Gender in MVC 4 view page
- 在IE下label标签图片下隐藏的单选按钮radio不起作用解决办法
- MFC创建ActiveX基础
- easyUI验证动态清除与恢复
- MySQL日期时间函数大全