当前位置: 首页 > news >正文

[面试] 组合(非递归)

接上题排列,稍作修改就可以做一个非递归的组合数了。

#include <iostream>
#include <vector>
#include <stack>
using namespace std;

void permutation(int a[], int n, int k)
{
    vector<int> b(k);

    stack<int> s;

    s.push(-1);

    while(!s.empty())
    {
        if (s.size() > k)
        {
            for(int i = 0; i < k; i++)
                cout << b[i] << ' ';
            cout << endl;
            s.pop();
            continue;
        }

        int start = s.top() + 1;
        s.pop();
        for(int i = start; i < n; i++)
        {
            b[s.size()] = a[i];
            s.push(i);
            s.push(i);
            break;
        }
    }
}

int main()
{
    int a[] = {1, 2, 3};

    int aSize = sizeof(a) / sizeof(int);

    permutation(a, aSize, 2);
}

相关文章:

  • Which garbage collection strategy is using
  • OutputCache造成页面响应内容类型为text/vnd.wap.wml的问题
  • windws 8 应用小技巧(11-15)
  • Mac禁用ipv6
  • C语言程序设计第一次作业
  • 学习PrintWriter类
  • 物联网设备漏洞不断增加 五大安全层面随时检视
  • 从ORACLE转战虚拟化 与VMware展开肉搏战来看
  • js 返回时间 字符串
  • ubuntu14.04安装nginx
  • 函数论_E.C.Tichmarsh_Page 4 例题 i,ii
  • 【物联网智能网关-12】以网关为核心,互联网为基础构建物联网平台
  • GIT 不常用的实用命令
  • 关于windows下的Enter键
  • 彻底搞懂 PHP 变量结构体,多数文章观点不准确
  • “大数据应用场景”之隔壁老王(连载四)
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • download使用浅析
  • JavaScript 奇技淫巧
  • JS专题之继承
  • mac修复ab及siege安装
  • ng6--错误信息小结(持续更新)
  • PAT A1120
  • Python实现BT种子转化为磁力链接【实战】
  • Redis 懒删除(lazy free)简史
  • 分享一份非常强势的Android面试题
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 开发基于以太坊智能合约的DApp
  • 聊聊hikari连接池的leakDetectionThreshold
  • 判断客户端类型,Android,iOS,PC
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 使用 @font-face
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 微信小程序:实现悬浮返回和分享按钮
  • FaaS 的简单实践
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #include
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (接口封装)
  • (一)基于IDEA的JAVA基础10
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)大型网站架构演变和知识体系
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • .NET CORE Aws S3 使用
  • .NET 事件模型教程(二)
  • .net(C#)中String.Format如何使用
  • .NET微信公众号开发-2.0创建自定义菜单