博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Combination Sum III -- leetcode
阅读量:5210 次
发布时间:2019-06-14

本文共 1114 字,大约阅读时间需要 3 分钟。

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]]

Credits:

基本思路:

使用dfs进行穷举遍历。

因为结果集要求按升序排列,则先选择较小的数字,然后从剩下的较大数中进行选择。

确保每次选择的数都大于上次选择的。

class Solution {public:    vector
> combinationSum3(int k, int n) { vector
> ans; vector
seq; helper(ans, seq, k, n); return ans; } void helper(vector
>& ans, vector
& seq, int k, int n) { if (!k && !n) return ans.push_back(seq); if (!k || n<0) return; int start = seq.empty() ? 1 : seq.back()+1; for (int i=start; i<=9; i++) { seq.push_back(i); helper(ans, seq, k-1, n-i); seq.pop_back(); } }};

转载于:https://www.cnblogs.com/gccbuaa/p/7116037.html

你可能感兴趣的文章
hdu 4268
查看>>
启动tomcat时cmd窗口一闪而过
查看>>
两个有序数列,求中间值 Median of Two Sorted Arrays
查看>>
vue路由的实现原理
查看>>
Java核心技术:Java异常处理
查看>>
Python 学习笔记一
查看>>
引入列表,将对话分类添加到对应列表中
查看>>
回文子串
查看>>
Count Numbers
查看>>
React——JSX
查看>>
编写高质量代码改善C#程序的157个建议——建议110:用类来代替enum
查看>>
最大公约数求解
查看>>
网卡bond技术
查看>>
UITabbarController的UITabbarItem(例:"我的")点击时,判断是否登录
查看>>
机器学习之支持向量机(一):支持向量机的公式推导
查看>>
对【SQL SERVER 分布式事务解决方案】的心得补充
查看>>
UNIX基础知识之输入和输出
查看>>
Diango路由映射FBV和CBV
查看>>
Android Studio配置指南总结
查看>>
【洛谷 P1666】 前缀单词 (Trie)
查看>>