#include <cstring> #include <vector> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @param k int整型 * @return int整型vector<vector<>> */ vector<vector<int> >ve; vector<int>pa; int s[100] = {0}; void dfs(int u, int n, int k) { int l = pa.size(); if (k == l) { ve.push_back(pa); return ; } for (int i = u; i <= n; ++i) { if (!s[i]) { s[i] = 1; pa.push_back(i); dfs(i + 1, n, k); pa.pop_back(); s[i] = 0; } } } vector<vector<int> > combine(int n, int k) { // write code here dfs(1, n, k); return ve; } };
一、题目考察的知识点
回溯
二、题目解答方法的文字分析
就回溯,递归的去遍历所有可能,记得标记一下已经访问的数字
三、本题解析所用的编程语言
c++