216. Combination Sum III
2017-02-24 11:19
211 查看
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.
Example 1:
Input: k = 3, n = 7
Output:
Example 2:
Input: k = 3, n = 9
Output:
在leetcode39,40的基础上加个附加条件即可
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]]
class Solution { public: vector<vector<int>> ans; void dfs(int k, int start, int sum, vector<int> v, int n){ if(v.size() == k){ if(sum == n) ans.push_back(v); return; } else { for(int i = start; i <= 9; ++i){ v.push_back(i); dfs(k, i + 1, sum + i, v, n); v.pop_back(); } } } vector<vector<int>> combinationSum3(int k, int n) { vector<int> v; dfs(k, 1, 0, v, n); return ans; } };
在leetcode39,40的基础上加个附加条件即可
class Solution { public: vector<vector<int>> ans; void dfs(int k, int n, int begin, int s, int cnt, vector<int>& vec){ for(int i = begin; i < 10; ++i){ int tmp = s + i; if(tmp < n){ vec.push_back(i); dfs(k, n, i + 1, tmp, cnt + 1, vec); } else if(tmp == n && cnt + 1 == k){ vec.push_back(i); ans.push_back(vec); vec.pop_back(); vec.pop_back(); return ; } else { s -= i; vec.pop_back(); return ; } } vec.pop_back(); } vector<vector<int>> combinationSum3(int k, int n) { vector<int> vec; dfs(k, n, 1, 0, 0, vec); return ans; } };
相关文章推荐
- LeetCode 216 Combination Sum III
- 216. Combination Sum III
- 216. Combination Sum III
- [LeetCode-Algorithms-216] "Combination Sum III" (2018.1.1-WEEK18)
- 216 Combination Sum III [Leetcode]
- 216. Combination Sum III**
- 39,40,216 Combination Sum I II III
- 216. Combination Sum III
- Leetcode 39 40 216 Combination Sum I II III
- 216. Combination Sum III
- 216. Combination Sum III
- 216. Combination Sum III
- 216. Combination Sum III
- 216. Combination Sum III
- 216.Combination Sum III
- 216. Combination Sum III
- LeetCode 216 Combination Sum III
- Leetcode 39 Combination Sum & 40 Combination Sum II & 216 Combination Sum III & 377 Combination V
- [Leetcode 216, Medium] Combination sum III
- [leetcode] 216 Combination Sum III