[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],
]
https://oj.leetcode.com/problems/combinations/

思路:递归,依次按要求填入结果。

public class Solution {public ArrayList<ArrayList<Integer>> combine(int n, int k) {ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();ArrayList<Integer> tmp = new ArrayList<Integer>();combineHelper(res, tmp, 1, n, k);return res;}private void combineHelper(ArrayList<ArrayList<Integer>> res, ArrayList<Integer> tmp, int start, int n, int k) {if (k == 0) {res.add(new ArrayList<Integer>(tmp));return;}for (int i = start; i <= n - k + 1; i++) {tmp.add(i);combineHelper(res, tmp, i + 1, n, k - 1);tmp.remove(tmp.size() - 1);}}public static void main(String[] args) {System.out.println(new Solution().combine(4, 2));}}
View Code

 

第二遍记录:

注意递归终止条件k==0(k表示还需要填入的个数),和 for循环填入变量i的终止点:n-k+1,注意k是不断变化的。 

注意结果List<List<Integer>>,res应定义为List<List<Integer>> res = new ArrayList<List<Integer>>();

注意dfs递推参数的变化  dfs(res, tmp, n, k - 1, i + 1); k减1,start=i+1;

 

 第四遍记录:

画出递归调用树分析。

注意的还是第二遍的那些条件。

 

转载于:https://www.cnblogs.com/jdflyfly/p/3815282.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/407597.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

硬盘安装xp

基本上没有谁从硬盘安装win系统&#xff0c;除非迫不得已&#xff0c;例如我&#xff0c;没有光驱。 从硬盘安装&#xff0c;并非ghost,有的电脑如果ghost的话&#xff0c;经常会提示hal.dll丢失或在载入时重启&#xff0c;这可能都是主板驱动问题。下面是几点要注意的事项&…

stylus之关键字参数(Keyword Arguments)

关键字参数(Keyword Arguments) 关键字参数&#xff1a; Stylus支持关键字参数&#xff0c;或”kwargs”. 允许你根据相关参数名引用参数 下面这些例子功能上都是一样的。但是&#xff0c;我们可以在列表中的任何地方放置关键字参数。其余不键入参数将适用于尚未得到满足的参…

sql loader 参数详解

Sqlldr sql loader可以把一些以文本格式存放的数据顺利地导入到oracle数据库中&#xff0c;它是一种在不同数据库之间进行数据迁移非常方便而且通用的工具。缺点就是速度比较慢&#xff0c;另外对blob等类型的数据就有点麻烦了。一、用法: SQLLDR keywordvalue [,keywordvalue,…

javascript学习系列(8):数组中的splice方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说s…

php中urlencode使用

URLEncode的方式一般有两种&#xff0c;一种是传统的基于GB2312的Encode&#xff08;Baidu、Yisou等使用&#xff09;&#xff0c;另一种是基于UTF-8的Encode&#xff08;Google、Yahoo等使用&#xff09;。 本工具分别实现两种方式的Encode与Decode&#xff1a; 中文 -> GB…

数据旋转及DB2递归的应用

前几天做一调查&#xff0c;需要下边这样的一个转换。求一SQL--关于数据纵横转换的假设表A中有以下数据A1 1 01A1 1 02A1 1 03A2 1 01A2 2 01A2 2 02现希望一SQL能够查出下边这样的数据&#xff08;暂时假设表A中第三列只有01-03这三种可能值&#xff09;A1 1 01-02-03A2 1 01A…

stylus之内置方法(Built-in Functions)

内置方法(Built-in Functions) red(color)&#xff1a;返回color中的红色比重 green(color)&#xff1a;返回color中的绿色比重 blue(color)&#xff1a;返回color中的蓝色比重 alpha(color)&#xff1a;返回color中的透明度比重 dark(color)&#xff1a;检查color是否是暗色 …

对进程个数计数

在linux怎么知道一个指定的“进程名”有几个在运行了呢&#xff1f; 下面这下例子演示了这个过程&#xff0c;计数函数为&#xff1a;getProcessCount() #include <stdio.h>#include <stdlib.h>#include <string.h>// 获取进程数量int getProcessCount(char…

如何设计安全的用户登录功能

用户登录功能是Web应用系统具备的最基本的功能&#xff0c;关系到用户数据和应用系统数据的安全&#xff0c;设计一个安全的用户登录功能&#xff0c;涉及到以下几个方面的内容。 (一) 老生常谈——口令 1. 口令长度与复杂度限制 限制用户输入一些非常容易被破解的口令&#xf…

可耗竭且不可回收的资源

第四章可耗竭且不可回收的资源能量是人类最关键的资源&#xff0c;没有它&#xff0c;生命将会终结。第一节天然气&#xff1a;价格控制第二节卡特尔问题• 卡特尔卡特尔是资本主义国家中的垄断组织形式之一&#xff0c;由生产同类产品的企业联合组成。卡特尔成员企业一方面为了…

stylus之其余参数(Rest Params)

其余参数(Rest Params) 其余参数&#xff1a; Stylus支持name…形式的其余参数。这些参数可以消化传递给混写或函数的参数们。这在处理浏览器私有属性&#xff0c;如-moz或-webkit的时候很管用 下面这个例子中&#xff0c;所有的参数们(1px, 2px, …)都被一个args参数给简单…

Taro+react开发(28)本地用require线上不必

img_hongchen: require("../../assets/images/companyTitle/system_video_cover.png"),

FineUI表格模板列Undefined问题

一般是配置文件未添加ClientID"AutoID"引起转载于:https://www.cnblogs.com/fuqiang88/p/3822567.html

fork()使用(一)

第一贴&#xff1a;cu上关于fork()函数的精辟分析 声明&#xff1a;在别人的博客上看到这篇文章&#xff0c;真的很精辟&#xff0c;把问题一下子讲清楚了。所以&#xff0c;特意转贴在此&#xff0c;向各位高人致敬&#xff0c;也向原贴主致谢&#xff01;本人不改变原贴的风貌…

stylus之注释(Comments)

注释(Comments) 注释 Stylus支持三种注释&#xff0c;单行注释&#xff0c;多行注释&#xff0c;以及多行缓冲注释 单行注释&#xff1a; 跟JavaScript一样&#xff0c;双斜杠&#xff0c;CSS中不输出 多行注释&#xff1a; 多行注释看起来有点像CSS的常规注释。然而&a…

吃的文化

主料&#xff1b;发好活海参1条&#xff0c;120克&#xff0c;辅料龙口粉丝10克&#xff0c;蟹黄2克 &#xff0c;五花肉丁10克 西兰花1朵土鸡蛋1个浓汤200克 &#xff0c;海参过水&#xff0c;五花肉煸锅加蚝油2克&#xff0c;金标老抽1克&#xff0c;加浓汤200克 盐味精各一克…

进程初学(二)

首先&#xff0c;来看一下下面的源程序吧&#xff1a; #include <stdio.h>#include <unistd.h>int main(){pid_t pid;printf("Now only one process\n");printf("Calling fork...\n");pid fork();if(!pid){ // 这里是子进程执行的任务printf…

stylus之条件(Conditionals)

条件(Conditionals) 条件&#xff1a; 条件提供了语言的流控制&#xff0c;否则就是纯粹的静态语言。提供的条件有导入、混入、函数以及更多。下面的例子纯粹示例&#xff0c;并不是使用建议 if / else if / else 这没什么好说的&#xff0c;跟一般的语言一致&#xff0c;i…