zoukankan      html  css  js  c++  java
  • LeetCode Combinations

    Given two integers n and k, return all possible combinations of k numbers out of 1 ... n.

    For example,
    If n = 4 and k = 2, a solution is:

    [
      [2,4],
      [3,4],
      [2,3],
      [1,2],
      [1,3],
      [1,4],
    ]

    public class Solution {
        List<List<Integer>> list=new ArrayList<>();
        public List<List<Integer>> combine(int n, int k) {
            List<List<Integer>> currList=new ArrayList<>();
                if (n==0 || k==0) {
                    return list;
                }
                
            for (int i = 0; i < n; i++) {
                List<Integer> ele=new ArrayList<>();
                ele.add(i+1);
                currList.add(ele);
            }
            list.addAll(currList);
            currList.clear();
            if (k==1) {
                return list;
            }
                    
                
                for (int i = 2; i <= k; i++) {
                    for (List<Integer> l : list) {
                        for (int j = l.get(l.size()-1)+1; j <=n; j++) {
                            ArrayList<Integer> newlist=new ArrayList<>();
                            newlist.addAll(l);
                            newlist.add(j);
                            currList.add(newlist);
                        }
                    }
                    list.clear();
                    list.addAll(currList);
                    currList.clear();
                }
        return list;
        
        }
        
    }
  • 相关阅读:
    堆排序
    伽马分布
    隔壁-贪心
    对刚—约瑟夫环
    站军姿-两圆并集
    单纯的线性筛素数
    3兔子
    2.圆桌游戏
    1.花
    历史
  • 原文地址:https://www.cnblogs.com/birdhack/p/4047732.html
Copyright © 2011-2022 走看看