组合

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

示例:

输入: n = 4, k = 2

输出:

[

[2,4],

[3,4],

[2,3],

[1,2],

[1,3],

[1,4],

]

采用回溯算法。这是一道 NP 难问题,时间复杂度没办法提高,用一个循环递归处理子问题,问题的终止条件是每个组合中的元素个数达到 k 个

 1 import java.util.ArrayList;
 2 import java.util.List;
 3
 4 public class Solution{
 5     public List<List<Integer>> combine(int n, int k){
 6         List<List<Integer>> res=new ArrayList<List<Integer>>();
 7         List<Integer> temp=new ArrayList<Integer>();
 8         dfs(res,temp,n,k,1);
 9         return res;
10     }
11
12     private void dfs(List<List<Integer>> res,List<Integer> temp,int n,int k,int m){
13         if(k==0){
14             res.add(new ArrayList<Integer>(temp));
15             return;
16         }
17         for(int i=m;i<=n;i++){
18             temp.add(i);
19             dfs(res,temp,n,k-1,i+1);
20             temp.remove(temp.size()-1);
21         }
22     }
23 }

转载于:https://www.cnblogs.com/kexinxin/p/10163055.html

Leetcode 77.组合相关推荐

  1. LeetCode.77. 组合

    LeetCode.77. 组合 难度:中等 这道题属于回溯的经典题目: 回溯模板: void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集 ...

  2. leetcode:77.组合

    77. 组合 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/combinations 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 ...

  3. LeetCode 77. 组合 | Python

    77. 组合 题目来源:力扣(LeetCode)https://leetcode-cn.com/problems/combinations 题目 给定两个整数 n 和 k,返回 1 - n 中所有可能 ...

  4. Java实现 LeetCode 77 组合

    77. 组合 给定两个整数 n 和 k,返回 1 - n 中所有可能的 k 个数的组合. 示例: 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], ...

  5. LeetCode 77. 组合(回溯)

    1. 题目 给定两个整数 n 和 k,返回 1 - n 中所有可能的 k 个数的组合. 示例:输入: n = 4, k = 2 输出: [[2,4],[3,4],[2,3],[1,2],[1,3],[ ...

  6. LeetCode 77 组合 -- 回溯法

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/combinations 题意: 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 ...

  7. LeetCode 77.组合求和

    给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的数字可以无限制重复被选 ...

  8. leetcode 77. 组合 思考分析

    目录 1.题目 2.回溯法思路 3.参考其他思路,更深入了解这个问题 4.剪枝优化 可能需要回顾到的知识文章: 1.常用算法总结(穷举法.贪心算法.递归与分治算法.回溯算法.数值概率算法) 2.回溯法 ...

  9. LeetCode 77 组合

    题目描述 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合. 题解 深度优先搜索 代码 class Solution {public:void dfs(vector< ...

最新文章

  1. 返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API
  2. JVM调优总结(一)- 一些概念
  3. iOS 6上的Safari是否缓存$ .ajax结果?
  4. 53-java中的queue
  5. 主席树有关的一些题目(持续更新)
  6. docker 封装sql_docker封装mysql镜像
  7. Every Woman is beautiful
  8. element upload预览_vue2.0 使用element-ui里的upload组件实现图片预览效果方法
  9. Dataguard后台进程解析
  10. 面向计算机体系结构,面向计算机体系结构的程序优化.ppt
  11. 华三 h3c super vlan配置
  12. 自动化测试的点点滴滴经验积累
  13. 201521123081《Java程序设计》 第4周学习总结
  14. 中国最好的论坛(未分类版)
  15. 多备份与Symantec NBU备份软件对比
  16. 斐波那契堆的java实现
  17. 韦根协议 wiegand
  18. 喜洋洋大战灰太狼(大结局)
  19. 腾讯云入门教程之腾讯云大学153个实验案例(免费学习)
  20. java 英文字符占几个字节_Java的字符串里的字符到底占几个字节?

热门文章

  1. 每天一道LeetCode-----有效回文串
  2. html登入弹框插件,基于jQuery的弹出框插件
  3. java学习笔记2021.1.10
  4. java里的主线程和子线程以及finally不会执行的特殊情况
  5. php tp 微信支付,PHP实现的微信APP支付功能示例【基于TP5框架】
  6. 一份详尽的IPC$入侵资料
  7. MFC使用CCommandLineInfo处理命令行
  8. HDU Problem - 6396 Swordsman(优先队列,模拟)
  9. 坑 之 tensorflow使用sess.run处理图片时越来越慢,占用内存越来越大的问题
  10. ValueError: slice index xxxx of dimension 0 out of bounds,详细分析。