Leetcode 77. 组合(中等)回溯算法
77. 组合(中等)
题目:
给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 输入:n = 4, k = 2 * 输出: * [ * ? [2,4], * ? [3,4], * ? [2,3], * ? [1,2], * ? [1,3], * ? [1,4], * ] 思路: 在回溯时使用start变量来确定起点class Solution { public: vectorint>> combine(int n, int k) { vector<int> track; backtrack(n,k,track,1); return ret; } void backtrack(int n,int k,vector<int>& track, int index){ if(track.size()==k){ ret.push_back(track); return; } for(int i=index;i<=n;++i){ track.push_back(i); backtrack(n,k,track,i+1); track.pop_back(); } } vector int>> ret; };