leetcode 216. 组合总和 III
Posted 巴蜀小小生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 216. 组合总和 III相关的知识,希望对你有一定的参考价值。
找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有1 - 9的正整数,并且每种组合中不存在重复的数字。
说明:
- 所有数字都是正整数。
- 解集不能包含重复的组合。
示例 1:
输入: k = 3, n = 7 输出: [[1,2,4]]
示例 2:
输入: k = 3, n = 9 输出: [[1,2,6], [1,3,5], [2,3,4]]
思路:和上一题的思路一样, 只是加了一个条件, 长度要是规定的长度
1 class Solution { 2 public: 3 void dfs(vector<vector<int>>&ans, vector<int>&subseq, int k, int n, int index){ 4 if(n==0 && subseq.size()==k){ 5 ans.push_back(subseq); 6 return; 7 } 8 for(int i=index; i<10; i++){ 9 subseq.push_back(i); 10 dfs(ans, subseq, k, n-i, i+1); 11 subseq.pop_back(); 12 } 13 } 14 vector<vector<int>> combinationSum3(int k, int n) { 15 vector<int> subseq; 16 vector<vector<int>> ans; 17 dfs(ans, subseq, k, n, 1); 18 return ans; 19 } 20 };
以上是关于leetcode 216. 组合总和 III的主要内容,如果未能解决你的问题,请参考以下文章