# 第77题. 组合 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] # 思路 # C++ 代码 ``` class Solution { private: vector> result; void backtracking(int n, int k, vector& vec, int startIndex) { if (vec.size() == k) { result.push_back(vec); return; } // 这个for循环有讲究,组合的时候 要用startIndex,排列的时候就要从0开始 // 这个过程好难理解,需要画图 for (int i = startIndex; i <= n; i++) { vec.push_back(i); backtracking(n, k, vec, i + 1); vec.pop_back(); } } public: vector> combine(int n, int k) { vector vec; backtracking(n, k, vec, 1); return result; } }; ```