1. Given two integers n and k, return all possible combinations of k numbers out of 1 ... n.
  2.  
  3. For example,
  4. If n = 4 and k = 2, a solution is:
  5.  
  6. [
  7. [2,4],
  8. [3,4],
  9. [2,3],
  10. [1,2],
  11. [1,3],
  12. [1,4],
  13. ]
  1. class Solution {
  2. private:
  3. vector<vector<int>> result;
  4. vector<int> a ;
  5. public:
  6. void findResult(int n, int k, int num,int start )
  7. {
  8. if(num == k)
  9. {
  10. result.push_back(a);
  11. return;
  12. }
  13. for(int i = start; i <= n; i++)
  14. {
  15.  
  16. a[num] = i;
  17. findResult( n, k, num+, i+);
  18.  
  19. }
  20. }
  21. vector<vector<int> > combine(int n, int k) {
  22. // Start typing your C/C++ solution below
  23. // DO NOT write int main() function
  24.  
  25. a.resize(k);
  26. result.clear();
  27. findResult( n, k, , ) ;
  28. return result;
  29.  
  30. }
  31. };

重写后:

  1. //Combinations
  2. class Solution {
  3. public:
  4. void DFS(int n, int start,int k, vector<int> &ans){
  5. if(ans.size() == k){
  6. res.push_back(ans);
  7. return;
  8. }
  9. for(int i = start; i <= n; i++)
  10. {
  11. ans.push_back(i);
  12. DFS(n, i+, k, ans);
  13. ans.pop_back();
  14. }
  15. }
  16. vector<vector<int> > combine(int n, int k) {
  17. // Start typing your C/C++ solution below
  18. // DO NOT write int main() function
  19. res.clear();
  20. vector<int> ans;
  21. DFS(n, , k, ans);
  22. return res;
  23.  
  24. }
  25. private:
  26. vector<vector<int>> res;
  27. };

LeetCode_Combinations的更多相关文章

随机推荐

  1. Qt浅谈之二十App自动重启及关闭子窗口

    一.简介 最近因项目需求,Qt程序一旦检测到错误,要重新启动,自己是每次关闭主窗口的所有子窗口但有些模态框会出现问题,因此从网上总结了一些知识点,以备以后的应用. 二.详解 1.Qt结构 int ma ...

  2. ImageButton自定义按钮的按下效果的高效实现方法(非一般)

    通常情况下,我们可以采用如下方式实现: <?xml version="1.0" encoding="UTF-8"?> <selector xm ...

  3. linux 文件内容的复制

    #include <string.h> #include <strings.h> #include <stdio.h> #include <stdlib.h& ...

  4. AspNetPager实现真分页+多种样式

    真假分页 分页是Web应用程序中最常用到的功能之一.当从数据库中获取的记录远远超过界面承载能力的时候,使用分页可以使我们的界面更加美观,更加的用户友好.分页包括两种类型:真分页和假分页. 其中假分页就 ...

  5. 11G在线重建索引

    SQL> select count(*) from test_idx; COUNT(*) ---------- 19087751 SQL> select segment_name,segm ...

  6. 浅谈JVM内存区域划分

    好吧,虽说真的有看过<深入分析Java Web技术内幕>一书,但当时看的时候还是一知半解,稀里糊涂的看完了.本来是打算暑假拿起来再看一遍的,但是早两天一个阿里学长给我做了个小面试,让我颇受 ...

  7. c语言sizeof与strlen的区别

    #include <stdio.h> #include <stdlib.h> #include <string.h> //strlen与sizeof的区别 //st ...

  8. pyqt cvs保存

    # -*- coding: utf-8 -*-__author__ = 'Administrator'import sys, csvfrom PyQt4 import QtGui, QtCore cl ...

  9. Laravel-高级篇-Artisan

    (慕课网_轻松学会Laravel-高级篇_天秤vs永恒老师_http://www.imooc.com/learn/702) 一.概述 Artisan是Laravel中自带的命令行工具的名称 由强大的S ...

  10. winzip15.0注冊码

    username:Juzhaofeng 授权码:MPZRP-Y7LWW-K1DKG-FM92E-2C5F5-ZEKFF