组合(递归leetcode77)-------------------c++实现

组合(递归leetcode77)-------------------c++实现,第1张

组合(递归leetcode77)-------------------c++实现 题目表述

给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。

你可以按 任何顺序 返回答案。

样例

示例 1:

输入:n = 4, k = 2
输出:
[
[2,4],
[3,4],
[2,3],
[1,2],
[1,3],
[1,4],
]

条件

1 <= n <= 20
1 <= k <= n

思路

先定好了从小到大的顺序,确定每次递归的取的数的范围。

注意点

注意边界值和vector用法

ac代码 c++:
class Solution {
public:
     void recombine(vector<vector<int> > &result,int now,int k,int n,int value,vector<int> &x)
     {
               if(now==k+1)
               {
                   result.push_back(x);
                   return;
               }
           for(int i=value+1;i<=now+n-k;i++)
           {
               x.push_back(i);
               recombine(result,now+1,k,n,i,x);
               x.pop_back();
           }
     }
    vector<vector<int> > combine(int n, int k) {
        int size=1;
         vector<vector<int> > result;
         vector<int> current;
          recombine(result,1,k,n,0,current); 
          return result;
    }
};

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/squares-of-a-sorted-array
著作权归领扣网络所有。

商业转载请联系官方授权,非商业转载请注明出处。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/674943.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存