【算法刷题day25】Leetcode:216.组合总和III 17.电话号码的字母组合
216.组合总和III
文档链接:[代码随想录]
(图片来源网络,侵删)
题目链接:216.组合总和III
题目:
找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:
只使用数字1到9
每个数字 最多使用一次
(图片来源网络,侵删)
返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。
注意:
跟前面的一样,还挺简单的
class Solution { public: vector combinationSum3(int k, int n) { a(k, n, 1); return result; } private: vector result; vector path; int sum = 0; void a(int k,int n,int j){ if(path.size() == k && sum == n){ result.push_back(path); } for(int i = j;i path.push_back(i); sum += i; a(k, n, i + 1); sum -= i; path.pop_back(); } } }; private: const string letterMap[10] = { "", // 0 "", // 1 "abc", // 2 "def", // 3 "ghi", // 4 "jkl", // 5 "mno", // 6 "pqrs", // 7 "tuv", // 8 "wxyz", // 9 }; vector if(index == digits.size()){ result.push_back(s); return ; } int digit = digits[index] - '0'; string letters = letterMap[digit]; for(int i = 0; i
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。
还没有评论,来说两句吧...