Combination Sum III
来源:互联网 发布:js 删除style属性 编辑:程序博客网 时间:2024/05/16 00:39
题目:
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:
[[1,2,4]]
Example 2:
Input: k = 3, n = 9
Output:
[[1,2,6], [1,3,5], [2,3,4]]
求子集问题类似!
参考代码如下:
public class Solution { public List<List<Integer>> combinationSum3(int k, int n) { List<List<Integer>> result = new ArrayList<List<Integer>>(); List<Integer> list = new ArrayList<Integer>(); dfs(result, 1, n, list, k); return result; } public void dfs(List<List<Integer>> result, int start, int sum, List<Integer> list, int k){ if(sum==0 && list.size()==k){ List<Integer> temp = new ArrayList<Integer>(); temp.addAll(list); result.add(temp); } for(int i=start; i<=9; i++){ if(sum-i<0) break; if(list.size()>k) break; list.add(i); dfs(result, i+1, sum-i, list, k); list.remove(list.size()-1); } }}
public class Solution { public List<List<Integer>> combinationSum3(int k, int n) { List<List<Integer>> result = new ArrayList<List<Integer>>(); List<Integer> list = new ArrayList<Integer>(); dfs(result, 1, n, list, k); return result; } public void dfs(List<List<Integer>> result, int start, int sum, List<Integer> list, int k){ if(sum==0 && list.size()==k){ List<Integer> temp = new ArrayList<Integer>(); temp.addAll(list); result.add(temp); } for(int i=start; i<=9; i++){ if(sum-i<0) break; if(list.size()>k) break; list.add(i); dfs(result, i+1, sum-i, list, k); list.remove(list.size()-1); } }}
0 0
- Combination Sum II&III
- Combination Sum III
- LeetCode Combination Sum III
- Combination Sum III
- [LeetCode] Combination Sum III
- Combination Sum III
- 【leetcode】 Combination Sum III
- [leetcode] Combination Sum III
- [leetCode] Combination Sum III
- leetcode Combination Sum III
- leetcode--Combination Sum III
- LeetCode216:Combination Sum III
- Combination Sum III
- LeetCode Combination Sum III
- Combination Sum III
- Combination Sum III
- Leetcode: Combination Sum III
- leetcode: Combination Sum III
- HDU-5122 K.Bro Sorting(贪心)
- pat1017Queueing at Bank (25)
- linux kexec 喂狗 方案 汇编代码
- Python学习笔记<list,tuple,range再探>
- 书籍共享
- Combination Sum III
- 求一个最长的串使得该串不包含任何禁止串为子串 AC自动机+DP +dfs判环 UVA 1399 - Puzzle
- 上下Div固定,中间div高度自适应(随浏览器高度变化而变化)
- C语言 switch和if..else的区别 以及枚举的作用
- UVA Poker Hands题解
- [深入理解Java虚拟机]第一章 走进Java
- ZOJ-3894-Chessgame【区间dp】
- C++primer第五版笔记-第七章类
- 笔记:学习 Android -Services 基础