【leetcode】【77】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], ]
二、问题分析
这道题是典型的backtracking类题目,这类题目感觉起来有点枚举的感觉(把所有的情况列出来)。这类题有类似的处理方式,可以参看generate parentheses,有回溯的基本解释。
三、Java AC 代码
public List<List<Integer>> combine(int n, int k) {List<List<Integer>> res = new ArrayList<List<Integer>>();List<Integer> item = new ArrayList<Integer>();if (k > n || n <= 0 || k <= 0) {return res;}dfsHelper(res, item, 1, n, k);return res;}public void dfsHelper(List<List<Integer>> res, List<Integer> item,int start, int n, int k) {if (item.size() == k) {res.add(new ArrayList<Integer>(item));return;}for (int i = start; i <= n; i++) {item.add(i);dfsHelper(res, item, i+1, n, k);item.remove(item.size() - 1);}}
【leetcode】【77】Combinations相关推荐
- 【LeetCode 深度优先搜索专项】不同岛屿的数量 II(711)
文章目录 1. 题目 1.1 示例 1.2 说明 1.3 提示 1.4 进阶 2. 解法一(深度优先搜索) 2.1 分析 2.2 解答 2.3 复杂度 1. 题目 给定一个 m×nm \times n ...
- 【LeetCode每日一题】1723. 完成所有工作的最短时间
[LeetCode每日一题]1723. 完成所有工作的最短时间 [1] 1723. 完成所有工作的最短时间 [2] 473. 火柴拼正方形 [1] 1723. 完成所有工作的最短时间 题目: 给你一个 ...
- 【LeetCode每日一题】——109.有序链表转换二叉搜索树
文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[题目提示] 七[解题思路] 八[时间频度] 九[代码实现] 十[提交结果] 一[题目类别] 二叉树 二[题 ...
- 【LeetCode每日一题】810. 黑板异或游戏
[LeetCode每日一题]810. 黑板异或游戏 题目: 黑板上写着一个非负整数数组 nums[i] .Alice 和 Bob 轮流从黑板上擦掉一个数字,Alice 先手.如果擦除一个数字后,剩余的 ...
- 【leetcode刷题笔记】动态规划
#[leetcode刷题笔记]动态规划 石子游戏 public boolean stoneGame(int[] piles) {int N = piles.length;// dp[i][j] is ...
- 【leetcode热题100】刷题记录(5-8)
[leetcode热题100]刷题记录(5-8) 5. 最长回文子串 2. 两数相加 3. 无重复字符的最长子串 4. 寻找两个正序数组的中位数 5. 最长回文子串 题目链接 给你一个字符串 s,找到 ...
- 【LeetCode通关全记录】658. 找到 K 个最接近的元素
[LeetCode通关全记录]658. 找到 K 个最接近的元素 题目地址
- 【LeetCode从零单刷】Permutations
题目: Given a collection of numbers, return all possible permutations. For example, [1,2,3] have the f ...
- 4月你好,愚人节果然是笨人,【LeetCode每日一题】1006. 笨阶乘
4月你好,愚人节果然是笨人,[LeetCode每日一题]1006. 笨阶乘 今日题目1006题,每日一题微信交流群可以点击右下角:合作转载->联系我,拉你入群. 目前每日一题两个群,每天推送题目 ...
- 【LeetCode刷题日记】常用算法基础和理解及运用
在我们LeetCode刷题过程中,如果我们只是了解数据结构(数组,链表,数)的使用方法,那我们在面对复杂的题目时,是很难很好的解决问题的,因此我们要了解一些常用算法来帮助我们更好的解题. 递归和迭代 ...
最新文章
- oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT
- 绿联 蓝牙适配器 linux,绿联蓝牙适配器
- [记忆碎片的磁盘整理]老妈
- 网不好怎么办?TLS握手带宽直降80%,BabaSSL是怎么做到的?| 龙蜥技术
- Silverlight 游戏开发小技巧:实现街霸4的选人界面
- 「leetcode」56. 合并区间【贪心算法】详细图解!
- Oracle12c CDB和PDB数据库的启动与关闭说明
- 教团1886:高端的半成品电影
- HTML5+CSS大作业——“传统节日--端午节(9页)
- 云服务器添加交换分区
- [转]关于模糊控制的理解
- 单键带定时雾化补水仪-DLT8P65SA
- 学生机房管理服务器系统设计,中小学机房管理系统设计与实现
- 苹果系统模拟器_开发者成功在苹果MacBook上通过模拟器正常运行Windows 10X版
- py-kms激活VOL
- 软件设计的不同模型:瀑布式、快速原型法以及迭代式
- 利用FME实现DLG数据无损转CAD地形图,实现CAD地物符号完美还原的解决方案,解决CAD地图符号难以还原的痛点问题,gdb转CAD,mdb转CAD,shp转CAD,shapefile转CAD
- 计网——(数据报与虚电路)
- java web网站 js 简体繁体切换_通过JS实现网站繁体简体互换
- HTTrack 爬取整站