leetcode经典组合类问题,采用dfs思想

来源:互联网 发布:自适应网址导航源码 编辑:程序博客网 时间:2024/06/03 21:59
public class Solution {
    public List<List<Integer>> combine(int n, int k) {
        
         List<List<Integer>> combSet=new ArrayList<List<Integer>>();
         List<Integer> comb=new ArrayList<Integer>();
         if(n<k){
             return combSet;
         }
         helper(n, k, combSet, comb, 1);
         return combSet;
        
    
    }
    
    public void helper(int n, int k, List<List<Integer>> combSet, List<Integer> comb, int start){
         if(comb.size()==k){
             combSet.add(new ArrayList<Integer>(comb));
             return;
         }
         else{
             for(int i=start;i<=n;i++){
                 comb.add(i);
                 helper(n, k, combSet, comb, i+1);
                 comb.remove(comb.size()-1);
                
                
             }
         }
     }
}
原创粉丝点击