Lintcode 152 · Combinations (组合好题)

这篇具有很好参考价值的文章主要介绍了Lintcode 152 · Combinations (组合好题)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

152 · Combinations
Algorithms
Medium

Description
Given two integers n and k. Return all possible combinations of k numbers out of 1, 2, … , n.

You can return all combinations in any order, but numbers in a combination should be in ascending order.

Example
Example 1:

Input: n = 4, k = 2
Output: [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]]
Example 2:

Input: n = 4, k = 1
Output: [[1],[2],[3],[4]]
Related Knowledge
学习《算法求职课——百题精讲》课程中的14.5组合-视频讲解相关内容 ,了解更多相关知识!
Tags
Related Problems

34
N-Queens II
Medium

33
N-Queens
Medium

653
Expression Add Operators
Hard

740
Coin Change 2
Medium

739
24 Game
Hard

解法1:文章来源地址https://www.toymoban.com/news/detail-745694.html

class Solution {
public:
    /**
     * @param n: Given the range of numbers
     * @param k: Given the numbers of combinations
     * @return: All the combinations of k numbers out of 1..n
     *          we will sort your return value in output
     */
    vector<vector<int>> combine(int n, int k) {
        vector<int> sol;
        vector<vector<int>> sols;
        helper(n, k, 1, sols, sol);
        return sols;
    }
private:
    void helper(int n, int k, int index, vector<vector<int>> &sols, vector<int> &sol) {
        if (sol.size() == k) {  //关键是这一行
            sols.push_back(sol);
            return;
        }
        for (int i = index; i <= n; i++) {
            sol.push_back(i);
            helper(n, k, i + 1, sols, sol);
            sol.pop_back();
        }
    }
};

到了这里,关于Lintcode 152 · Combinations (组合好题)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • lintcode 540 · 左旋右旋迭代器 【算法 中等 迭代器】

    https://www.lintcode.com/problem/540

    2024年02月07日
    浏览(35)
  • 模拟赛好题分享

    @ 目录 山茶花 100pts T1区间逆序对 60pts 100pts 区间操作固定套路,转化为前缀操作 dream 20pts 神奇分块 杭州:转化题意,正难则反 正难则反(或者对于这种有删边操作的题), 我们看成反向加边 看题:构造 坐飞机:斜率优化DP 抓颓 : 启发式合并 + stl大杂烩 讨厌的线段树 Foo Fighters

    2024年02月05日
    浏览(57)
  • C语言好题解析(一)

    【答案】 C 【分析】 首先我们可以看到x和y有两个不同的值,为x=5和3,y=7和8,其中x=5和y=7的范围比x=3和y=8的范围更大(即作用域更大),而 printf函数有一个就近原则 ,即输出与它最近的x和y,swap函数则是将x=5和y=7进行交换(因为 swap函数没有就近原则,而x=5和y=7作用域更大

    2024年02月12日
    浏览(30)
  • C语言好题解析(三)

    【答案】 A 【分析】这道题涉及到转义字符, 是一种转义字符,而就是以(第一个)修饰(第二个)使(第二个)不表示转义的意思(这里有点绕) 因此 为一个字符,而123456则为6个字符。 对后面的123456t来说,123表示一个字符( ddd:ddd是表示一个1-3位的八进制数字

    2024年02月12日
    浏览(31)
  • C语言好题解析(四)

    【答案】A 【分析】 数组 :在传参时我们需要注意参数类型,对于数组而言, 传参时我们可以直接省略[]和里面的数字 指针 :当传参时为指针时,我们就需要注意了,指针int*a表示传入参数为整形类型的指针地址,因此表示整形地址则需和整形类型的元素d 【答案】ABCD 【分

    2024年02月11日
    浏览(33)
  • C语言好题解析(二)

    【答案】 D 【分析】 1: 递归解题思路就是要注意递归的限制条件,满足限制条件时递归就不再继续,且每次递归调用之后都会接近这个限制条件 2:由题目我们可以知道限制条件为n==5,当我们输入比5小的数时,n是以每次增加1的趋势接近限制条件 流程如下(第一次用画图软

    2024年02月12日
    浏览(32)
  • 2023-08-07力扣今日七题-好题

    链接: 剑指 Offer 11. 旋转数组的最小数字 154. 寻找旋转排序数组中的最小值 II 题意: 找一个数组里的最小值,这个数组是有非递减数组旋转而来的,旋转n次表示把前n个数 移动 到数组末尾 解: 很有趣的二分,由于是非递减数组旋转而来,所以最小值往右一定小于等于最小

    2024年02月14日
    浏览(35)
  • 迁移学习——ResNet152

    2024年02月09日
    浏览(64)
  • leetcode 152. 乘积最大子数组

    题目链接:leetcode 152 给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 测试用例的答案是一个 32-位 整数。 子数组 是数组的连续子序列。 1)示例 1: 输入: nums = [2,3,-2,4] 输出: 6 解释: 子数

    2024年02月03日
    浏览(33)
  • LeetCode-152. 乘积最大子数组

    题目来源 152. 乘积最大子数组 这题跟LeetCode-53. 最大子数组和很像 最后把整个 dp 数组看一遍求最大值即可。因此状态转移方程可能是: 说明:牢记状态的定义,一定以下标 i 结尾,即:乘积数组中 nums[i] 必须被选取。 如果 dp[i - 1] 是负数,乘上 nums[i] 还是负数。 如果 nums[

    2023年04月13日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包