LeetCode如何解决组合问题

这篇文章主要介绍LeetCode如何解决组合问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

创新互联是一家专业提供雁江企业网站建设,专注与网站制作、网站设计html5、小程序制作等业务。10年已为雁江众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

题目

给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。

示例:
输入: n = 4, k = 2
输出:
[
  [2,4],
  [3,4],
  [2,3],
  [1,2],
  [1,3],
  [1,4],
]
代码
class Solution {
    List temp = new ArrayList();
    List> ans = new ArrayList>();

    public List> combine(int n, int k) {
        dfs(1, n, k);
        return ans;
    }

    public void dfs(int cur, int n, int k) {
        // 剪枝:temp 长度加上区间 [cur, n] 的长度小于 k,不可能构造出长度为 k 的 temp
        if (temp.size() + (n - cur + 1) < k) {
            return;
        }
        // 记录合法的答案
        if (temp.size() == k) {
            ans.add(new ArrayList(temp));
            return;
        }
        // 考虑选择当前位置
        temp.add(cur);
        dfs(cur + 1, n, k);
        temp.remove(temp.size() - 1);
        // 考虑不选择当前位置
        dfs(cur + 1, n, k);
    }

}

以上是“LeetCode如何解决组合问题”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


名称栏目:LeetCode如何解决组合问题
网页链接:http://bzwzjz.com/article/ppispi.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站设计 重庆网站建设 企业网站设计 营销型网站建设 攀枝花网站设计 移动手机网站制作 成都网站设计 手机网站建设套餐 古蔺网站建设 成都网站建设 自适应网站建设 专业网站建设 做网站设计 重庆网站制作 泸州网站建设 成都网站建设 成都网站制作 成都网站设计公司 成都网站建设 成都网站设计 网站建设推广 响应式网站设计方案