LeetCode-77-Combinations(回溯法)-Medium
2016-03-20 12:46
435 查看
题意理解:
列举从1-n中取出k个数的全部情况(如,[1, 2, 3]中取2个数的结果为[1, 2] [1, 3] [2, 3]);
题目分析:
使用回溯法(深度遍历+剪枝);
解题代码:
列举从1-n中取出k个数的全部情况(如,[1, 2, 3]中取2个数的结果为[1, 2] [1, 3] [2, 3]);
题目分析:
使用回溯法(深度遍历+剪枝);
解题代码:
public class Solution { private ArrayList<ArrayList<Integer>> ans= new ArrayList<ArrayList<Integer>>(); private void process(ArrayList<Integer> list, int[] nums, int initPos, int n){ if(n==0){ ans.add(list); return; } if(initPos==nums.length){ return; } for(int i=initPos; i<nums.length; i++){ ArrayList<Integer> tList= new ArrayList(list); tList.add(new Integer(nums[i])); process(tList, nums, i+1, n-1); } } public List<List<Integer>> combine(int n, int k) { int[] nums= new int ; for(int i=1; i<=n; i++){ nums[i-1]=i; } ArrayList<Integer> list=new ArrayList<Integer>(); process(list, nums, 0, k); return (List)ans; } }
相关文章推荐
- 最大子序列问题
- 解决YUM下Loaded plugins: fastestmirror Determining fastest mirrors 的问题
- 解决HTML外部引用CSS文件不生效问题
- hibernate和spring整合时出现的数据库连接问题
- 解决HTML外部引用CSS文件不生效问题
- C语言第三篇:C语言数据类型及各数据类型所占内存字节数
- BP反向传播算法是如何工作的How the backpropagation algorithm works
- 多线程“基础篇”08之 join()
- UVA 10870 Recurrences(构造矩阵和快速幂)
- leetcode 61. Rotate List
- Tomcat集群配置
- MySQL 01 通过二进制包安装MySQL
- 第三周项目1:求最大公约数
- 图的割点 邻接表和邻接矩阵的分析
- ASP.NET5 MVC6 连接SQLSERVER
- STS: Spring Boot and Hibernate
- 关键字void
- 每日一算法---寻找丑数
- React Native iOS环境搭建
- IOS Animation-贝塞尔曲线与Layer简单篇(一)