代码随想录刷题第24天
组合
/*
* @lc app=leetcode.cn id=77 lang=cpp
*
* [77] 组合
*
* https://leetcode.cn/problems/combinations/description/
*
* algorithms
* Medium (77.28%)
* Likes: 1278
* Dislikes: 0
* Total Accepted: 481.3K
* Total Submissions: 622.8K
* Testcase Example: '4\n2'
*
* 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。
*
* 你可以按 任何顺序 返回答案。
*
*
*
* 示例 1:
*
*
* 输入:n = 4, k = 2
* 输出:
* [
* [2,4],
* [3,4],
* [2,3],
* [1,2],
* [1,3],
* [1,4],
* ]
*
* 示例 2:
*
*
* 输入:n = 1, k = 1
* 输出:[[1]]
*
*
*
* 提示:
*
*
* 1
* 1
*
*
*/
// @lc code=start
#include <vector>
using namespace std;
class Solution {
public:
vector<vector<int>> result;
vector<int> path;
void traversal(int n,int k,int index){
if(path.size() == k) {
result.push_back(path);
return;
}
for (int i = index; i <= n; i++)
{
path.push_back(i);
traversal(n,k,i+1);
path.pop_back();
}
}
vector<vector<int>> combine(int n, int k) {
traversal(n,k,1);
return result;
}
};
// @lc code=end