LeetCode77:Combinations[通俗易懂]

LeetCode77: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],
]
Hide Tags Backtracking

给定一个数n。求1到n之间的全部的k个数的组合。
这个题目能够在纸上画下草图,明显能够用递归求解。递归的终止条件是k=0,而且因为须要将组合保存到集合vector中,还须要使用回溯法来保存数据。
runtime:8ms

class Solution {
public:
    vector<vector<int>> combine(int n, int k) {
        vector<vector<int>> result;
        vector<int> vec;
        helper(1,n,k,vec,result);
        return result;
    }

    void helper(int first,int last,int k,vector<int> & vec,vector<vector<int>> & result)
    {
        if(k==0)
        {
            result.push_back(vec);
            return ;
        }

        for(int i=first;i<=last-k+1;i++)
        {
            vec.push_back(i);
            helper(i+1,last,k-1,vec,result);
            vec.pop_back();
        }
    }

};

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116219.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 「Odoo 基础教程系列」第三篇——从 Todo 应用开始(2)

    「Odoo 基础教程系列」第三篇——从 Todo 应用开始(2)

    2021年6月11日
    115
  • 2014MadCon厦门分享会-笔记(下)[通俗易懂]

    2014MadCon厦门分享会-笔记(下)[通俗易懂]32《如何与百度互动,不知道这些就不要做SEO了》百度站长平台资深产品运营师曹丽丽(飞鸟)33注意百度站长平台的提醒。如果你不留电话,不留其他联系方式,出问题了,百度怎么提醒你呢?34为什么高富帅换域名时很平稳啊?注意使用以下工具:(1)高级互动工具-网站改版(需要提交相关信息,在过度一个月之后,再撤掉原来的域名)(2)抓取异常&拒绝外链(这些都要做好重定向,提前做好准备)…

    2022年5月23日
    35
  • vue鼠标移入移出显示和隐藏_labview树形控件卡

    vue鼠标移入移出显示和隐藏_labview树形控件卡实现效果与原理我们希望实现鼠标移动至树型结构的结点上就显示按钮,移出就隐藏按钮实现原理:是通过@mouseenter和@mouseleave两个属性来控制鼠标hover的效果,再配合v-sho

    2022年8月7日
    6
  • python协程系列_python的协程

    python协程系列_python的协程协程协程(Coroutine),又称微线程,纤程。(协程是一种用户态的轻量级线程)作用:在执行A函数的时候,可以随时中断,去执行B函数,然后中断B函数,继续执行A函数(可以自动切换)

    2022年7月31日
    6
  • iOS使用VOIP与CallKit实现体验优质的网络通讯功能

    iOS使用VOIP与CallKit实现体验优质的网络通讯功能

    2021年5月26日
    115
  • js中的闭包[通俗易懂]

    js中的闭包[通俗易懂]闭包是js的一个难点也是它的一个特色,是我们必须掌握的js高级特性,那么什么是闭包呢?它又有什么用呢?我们都知道,js的作用域分两种,全局和局部,基于我们所熟悉的作用域链相关知识,我们知道在js作用域环境中访问变量的权利是由内向外的,内部作用域可以获得当前作用域下的变量并且可以获得当前包含当前作用域的外层作用域下的变量,反之则不能,也就是说在外层作用域下无法获取内层作用域下的变量,同样在不同的函…

    2022年6月25日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号