很简单一道题,提交多次都是TLE原来是一个小笔误
class Solution {
public:
vector<vector<int> > combine(int n, int k) {
if( n == 0 || k == 0)
return vector<vector<int > >();
vector< vector< int> > res;
vector< int> cur;
_combine( res, cur, n, k, 1, 0);
return res;
}
private:
void _combine( vector< vector< int> > &res, vector< int> &cur, int n, int k, int pos, int cur_k){
if( cur_k == k){
res.push_back(cur);
return;
}
for( int i = pos; i <= n; ++i){
cur.push_back(i);
_combine( res, cur, n, k, i+1, cur_k+1);//错在这里,不是pos+1,是i+1,要仔细
cur.pop_back();
}
}
};