77. Combinations

Posted wentiliangkaihua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了77. Combinations相关的知识,希望对你有一定的参考价值。

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

Example:

Input: n = 4, k = 2
Output:
[
  [2,4],
  [3,4],
  [2,3],
  [1,2],
  [1,3],
  [1,4],
]
public class Solution 
    public List<List<Integer>> combine(int n, int k) 
        List<List<Integer>> result = new ArrayList();
        List<Integer> tmp = new ArrayList();
        dfs(n, k, 1, 0, tmp, result);
        return result;
    
    // start,开始的数, cur,已经选择的数目
    private static void dfs(int n, int k, int start, int cur,
                            List<Integer> tmp, List<List<Integer>> result) 
        if (cur == k) 
            result.add(new ArrayList(tmp));
        
        for (int i = start; i <= n; ++i) 
            tmp.add(i);
            dfs(n, k, i + 1, cur + 1, tmp, result);
            tmp.remove(tmp.size() - 1);
        
    

backtracking的变种

以上是关于77. Combinations的主要内容,如果未能解决你的问题,请参考以下文章

kryo585是a77吗

Python 中的退出代码 77 是啥意思? [关闭]

使用 fink 安装 g77 [关闭]

make: g77: Command not found 修改Makefile.in中的编译文件中的g77为gfortran

数据压缩算法---LZ77算法 的分析与实现

[转帖]ARM A77+G77最强公版架构:联发科5G SoC计划11月26日发布