其他分享
首页 > 其他分享> > 77. 组合

77. 组合

作者:互联网

描述

给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。

你可以按 任何顺序 返回答案。

链接

77. 组合 - 力扣(LeetCode) (leetcode-cn.com)

 

题解

 1 class Solution {
 2     List<List<Integer>> res = new ArrayList<>();
 3     Deque<Integer> path  = new ArrayDeque<>();
 4     public List<List<Integer>> combine(int n, int k) {
 5         if( n <= 0 || k<= 0) {
 6             return res;
 7         }
 8         combineHelper(n, k, 1); // 递归的时候从一 开始
 9         return res;
10     }
11 
12     public void combineHelper(int n, int k, int StartIndex) {
13         if(path.size() == k) {  // 
14             res.add(new ArrayList<>(path));
15             return;
16         }
17 
18         for(int i = StartIndex; i <= n - (k-path.size()) +1; i++) {  // 剪枝
19             path.addLast(i);
20             combineHelper(n, k, i + 1);
21             path.removeLast();
22         }
23     }
24 }

 

参考

carl

标签:组合,int,List,77,new,path
来源: https://www.cnblogs.com/oligei11/p/15706159.html