LeetCode 77. 组合(Combinations)
2024-09-04 16:10:59
题目描述
给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。
示例:
输入: n = 4, k = 2
输出:
[
[2,4],
[3,4],
[2,3],
[1,2],
[1,3],
[1,4],
]
解题思路
回溯法,每次遍历到一个元素分为放入与不放入集合两种情况,若集合长度为k,则加入到结果中。
代码
class Solution {
public:
vector<vector<int>> combine(int n, int k) {
vector<vector<int>> res;
vector<int> nums, temp;
for(int i = ; i < n; i++)
nums.push_back(i + );
cmb(n, k, , nums, temp, res);
return res;
}
void cmb(int n, int k, int idx, vector<int> nums, vector<int> &temp, vector<vector<int>> &res){
if(k && temp.size() == k)
res.push_back(temp);
else if(idx < n){
temp.push_back(nums[idx]);
cmb(n, k, idx + , nums, temp, res);
temp.pop_back();
cmb(n, k, idx + , nums, temp, res);
}
}
};
最新文章
- UIAlertController 部分用法及属性
- hdu 4278 2012天津赛区网络赛 数学 *
- C++ 中 volatile 的使用
- 经典DP 二维换一维
- 2、Spring的LocalSessionFactoryBean创建过程源码分析
- css3的loadding效果
- android的注意点
- Linux下Oracle常见安装错误[Z]
- Opencv在linux下安装
- Vue.js + Webpack
- LVM 磁盘分区扩容
- OOCSS(面向对象的CSS)总结
- springboot集成quartz定时任务课动态执行
- 【spring】之xml和Annotation,Bean注入的方式
- git使用教程PDF版
- [CodeForces - 614E] E - Necklace
- 关于java中Static关键字的加强理解
- MySql(十五):MySql架构设计——可扩展性设计之 Cache 与 Search 的利用
- RHEL5 yum更新源
- h1026 BFS(打印x与路径)