(回溯法)LeetCode#77. Combinations
来源:互联网 发布:美萍进销存软件客服 编辑:程序博客网 时间:2024/05/16 05:28
题目:给定两个数n,k 从1到n这n个数中选择k个组成一个组合(不能重复)
例如 n=4,k=2 则相应的组合有[[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]]
- 思路:显然这种类型的题目都需要用回溯法来做。找到结束条件至关重要,对于此题 当 k < 0或者n-start + 1 < k的时候需要结束本次递归,当k=0的时候,说明这一个解已经找到(将解加入到列表里)
- 难度:Medium
- 代码:
public class Solution { public List<List<Integer>> combine(int n, int k) { List<List<Integer>> result = new ArrayList<>(); if(k == 0){ return result; } if(n < k){ return result; } backtrack(result, new ArrayList<>(), n, k,1); return result; } private void backtrack(List<List<Integer>> result, List<Integer> list, int n, int k, int start){ if(k < 0 || n-start < k-1){ return; }else if(k == 0){ result.add(new ArrayList<>(list)); }else{ for(int i = start; i <= n; i++){ list.add(i); backtrack(result, list, n, k-1, i+1);//下一次的start是数组的下一个值 list.remove(list.size()-1);//回退到上一步 } } }}
0 0
- (回溯法)LeetCode#77. Combinations
- 77.leetcode Combinations(medium)[回溯递归]
- [C++]LeetCode: 83 Combinations (回溯法)
- LeetCode-77-Combinations(回溯法)-Medium
- [leetcode][回溯] Combinations
- LeetCode 77. Combinations(组合)
- LeetCode 77. Combinations 组合问题C(n,k),树形状态回溯,优化减枝
- LeetCode 17. Letter Combinations of a Phone Number 递归回溯法
- 第十五周 leetcode 77. Combinations(Medium)
- LeetCode 77. Combinations
- [LeetCode]77.Combinations
- LeetCode --- 77. Combinations
- [Leetcode] 77. Combinations
- [leetcode] 77.Combinations
- leetCode 77.Combinations (组合)
- [leetcode] 77. Combinations
- 77. Combinations LeetCode
- <LeetCode OJ> 77. Combinations
- libevent+多线程的服务器模型
- 时间管理
- android 开发 常用 adb 命令
- 在 Linux 上搭建 Hubot 聊天机器人服务器
- 三、JMX官方指导文档 之 通知
- (回溯法)LeetCode#77. Combinations
- MongoDB之GridFS
- 控制Gallery 速度
- 线程范围内的数据共享
- mybatis的延迟加载
- FM和FFM原理
- MySQL视图
- Hive介绍及部署最详细文档
- 非常详细图文JDK和Tomcat安装和配置的图文教程