排列组合之组合问题 网易深度学习工程师面试题 C++ 使用10方法

#include <iostream>
#include <vector>
#include <cstdio>

#define UL unsigned long int

using namespace std;

// 后r个全是1的时候终止
bool hasDone(vector<int>& index, int r){
    for(auto i=index.size()-r; i < index.size(); i++){
        if(index[i] == 0) return false;
    }
    return true;
}

vector<int> combination_justk(int n, int r, int k){
    vector<int> index((UL)n, 0);
    // 设置初始index, 前k个设置为1, 即r个1, n-r个0
    for(int i=0;i<r;i++){
        index[i] = 1;
    }
    // 记录初始组合
    while(!hasDone(index, r)){
        k--;
        for(int i=0;i<index.size()-1;i++){
            // 找到10的时候,交换10变成01
            if(index[i] == 1 && index[i+1] == 0){
                index[i] = 0;
                index[i+1] = 1;
                // 将i左边的序列恢复成最小的状态,即前面是1后面是0
                int left_one_num=0;
                for(int j=0;j<i;j++){
                    if(index[j] == 1){
                        index[j] = 0;
                        index[left_one_num++] = 1;
                    }
                }
                if(k-1==0){
                    return index;
                }
                else{
                    break;
                }
            }
        }
    }
    return {};
}

void netease_test(int n, int m, int k){
    if(n<=0 || m<=0 || k<=0) return;
    auto index = combination_justk(n+m, n, k);
    for(auto i:index){
        if(i==1){
            cout << ‘a‘;
        }
        else{
            cout << ‘z‘;
        }
    }
    cout << endl;
}

int main(int argc, char* argv[])
{
    netease_test(2, 2, 6);// zzaa
    return 0;
}

原文地址:https://www.cnblogs.com/theodoric008/p/9461106.html

时间: 2024-08-30 10:25:23

排列组合之组合问题 网易深度学习工程师面试题 C++ 使用10方法的相关文章

【转载】浅谈深度学习(Deep Learning)的基本思想和方法

浅谈深度学习(Deep Learning)的基本思想和方法 分类: 机器学习 信息抽取 Deep Learning2013-01-07 22:18 25010人阅读 评论(11) 收藏 举报 深度学习(Deep Learning),又叫Unsupervised Feature Learning或者Feature Learning,是目前非常热的一个研究主题. 本文将主要介绍Deep Learning的基本思想和常用的方法. 一. 什么是Deep Learning? 实际生活中,人们为了解决一个问

深度学习解决局部极值和梯度消失问题方法简析(转载)

转载:http://blog.sina.com.cn/s/blog_15f0112800102wojj.html 这篇文章关于对深度CNN中BP梯度消失的问题的做了不错的解析,可以看一下: 多层感知机解决了之前无法模拟异或逻辑的缺陷,同时更多的层数也让网络更能够刻画现实世界中的复杂情形.理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务.多层感知机给我们带来的启示是,神经网络的层数直接决定了它对现实的刻画能力——利用每层更少的神经元拟合更加复杂的函数.但是

吴恩达【深度学习工程师】 04.卷积神经网络 第四周特殊应用(2)神经风格转换

该笔记介绍的是<卷积神经网络>系列第四周:特殊应用(2)神经风格转换 主要内容有: 1.神经风格转换 2.卷积网络隐藏单元可视化显示 3.神经风格转换代价函数 4.内容代价函数 5.风格代价函数 *6.数据从一维到三维的推广 神经风格转换 把C(content)内容图片转化为风格类似S(style)风格图片的G(generated)生成图片. 卷积网络隐藏单元可视化显示 通过观察可视化显示的不同隐藏单元的输出结果真正了解卷积网络中深度较大的层真正在做些什么. 可视化图块输出: 从第一层隐藏层第

吴恩达【深度学习工程师】 04.卷积神经网络 第三周目标检测 (1)基本的对象检测算法

该笔记介绍的是<卷积神经网络>系列第三周:目标检测(1)基本的对象检测算法 主要内容有: 1.目标定位 2.特征点检测 3.目标检测  目标定位 使用算法判断图片中是不是目标物体,如果是还要再图片中标出其位置并使用边框标记出来                          我们研究过的问题中,图片分类的思想可以帮助学习分类定位,而分类定位的思想又可以帮助学习对象检测 a.分类定位问题,通常有一个较大的对象位于图片中间位置. b.对象检测问题,图片可以含有多个对象,或一张图片中会有多个不同分

网易CC研发工程师 笔试题2016-04-15

题目: 1.判断一个数是否是3的幂.  2.判断一个数是否是3的幂,不用循环或递归.  3.正则表达式用来匹配电话号码.  例:(020) 12345678  020-12345678  还有一题正则表达式判断是否可以匹配到cc.163.com.  4.浏览器输入一个url然后都发生了什么?  5.输入年月日时分秒,给出下一秒的时间,如2004年12月31日23时59分59秒,输出2005年1月1日0时0分0秒.  void nextSecond(int *nYear,int *nMonth,i

(转) TensorFlow深度学习,一篇文章就够了

TensorFlow深度学习,一篇文章就够了 2016/09/22 · IT技术 · TensorFlow, 深度学习 分享到:6 原文出处: 我爱计算机 (@tobe迪豪 ) 作者: 陈迪豪,就职小米科技,深度学习工程师,TensorFlow代码提交者. TensorFlow深度学习框架 Google不仅是大数据和云计算的领导者,在机器学习和深度学习上也有很好的实践和积累,在2015年年底开源了内部使用的深度学习框架TensorFlow. 与Caffe.Theano.Torch.MXNet等框

用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践

转自https://zhuanlan.zhihu.com/p/25928551 近来在同时做一个应用深度学习解决淘宝商品的类目预测问题的项目,恰好硕士毕业时论文题目便是文本分类问题,趁此机会总结下文本分类领域特别是应用深度学习解决文本分类的相关的思路.做法和部分实践的经验. 业务问题描述: 淘宝商品的一个典型的例子见下图,图中商品的标题是"夏装雪纺条纹短袖t恤女春半袖衣服夏天中长款大码胖mm显瘦上衣夏".淘宝网后台是通过树形的多层的类目体系管理商品的,覆盖叶子类目数量达上万个,商品量也

深度学习(综述,2015,应用)

0. 原文 Deep Learning Algorithms with Applications to Video Analytics for A Smart City: A Survey 1. 目标检测 目标检测的目标是在图像中精确定位目标的位置.已经提出了许多使用深度学习算法的工作.我们回顾如下一些有代表性的工作: Szegedy[28]修改了深度卷积网络,用回归层代替最后一层,目的是针对目标的box产生一个binary mask,如图3所示.另外,还提出多尺度策略,来提高检测精度.他们做的

(转)大牛的《深度学习》笔记,60分钟带你学会Deep Learning。

大牛的<深度学习>笔记,60分钟带你学会Deep Learning. 2016-08-01 Zouxy 阅面科技 上期:<从特征描述到深度学习:计算机视觉发展20年> 回复“01”回顾全文   本期:大牛的<深度学习>笔记,60分钟带你学会Deep Learning. 深度学习,即Deep Learning,是一种学习算法(Learning algorithm),亦是人工智能领域的一个重要分支.从快速发展到实际应用,短短几年时间里,深度学习颠覆了语音识别.图像分类.文本