• 腾讯面试第六题!


    第6题
    ------------------------------------
    腾讯面试题:
    给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数
    要求下排每个数都是先前上排那十个数在下排出现的次数。
    上排的十个数如下:
    【0,1,2,3,4,5,6,7,8,9】

    初看此题,貌似很难,10分钟过去了,可能有的人,题目都还没看懂。

    举一个例子,
    数值: 0,1,2,3,4,5,6,7,8,9
    分配: 6,2,1,0,0,0,1,0,0,0
    0在下排出现了6次,1在下排出现了2次,
    2在下排出现了1次,3在下排出现了0次....
    以此类推..
    // 引用自July 2010年10月18日。

    //数值: 0,1,2,3,4,5,6,7,8,9
    //分配: 6,2,1,0,0,0,1,0,0,0

    #include <iostream.h>
    #define len 10

    class NumberTB
    {
    private:
    int top[len];
    int bottom[len];
    bool success;
    public:
    NumberTB();
    int* getBottom();
    void setNextBottom();
    int getFrequecy(int num);
    };

    NumberTB::NumberTB()
    {
    success = false;
    //format top
    for(int i=0;i<len;i++)
    {
    top[i] = i;
    }
    }


    int* NumberTB::getBottom()
    {
    int i = 0;
    while(!success)
    {
    i++;
    setNextBottom();
    }
    return bottom;
    }

    //set next bottom
    void NumberTB::setNextBottom()
    {
    bool reB = true;

    for(int i=0;i<len;i++)
    {
    int frequecy = getFrequecy(i);

    if(bottom[i] != frequecy)
    {
    bottom[i] = frequecy;
    reB = false;
    }
    }
    success = reB;
    }

    //get frequency in bottom
    int NumberTB::getFrequecy(int num) //此处的num即指上排的数 i
    {
    int count = 0;

    for(int i=0;i<len;i++)
    {
    if(bottom[i] == num)
    count++;
    }
    return count; //cout即对应 frequecy
    }

    int main()
    {
    NumberTB nTB;
    int* result= nTB.getBottom();

    for(int i=0;i<len;i++)
    {
    cout<<*result++<<endl;
    }
    return 0;
    }
    ///////////////////////////////////////////
    运行结果:
    6
    2
    1
    0
    0
    0
    1
    0
    0
    0
    Press any key to continue
    /////////////////////////////////////////

  • 相关阅读:
    模拟测试20190815(已更新)
    [JLOI2015]管道连接
    [BJWC2018]最长上升子序列
    [CQOI2012]局部极小值
    [HNOI2010]Bus 公交线路
    [BZOJ4903/CTSC2017]吉夫特
    [BZOJ3717/PA2014]Pakowanie
    [NOI2015]寿司晚宴
    [BZOJ4145/AMPPZ2014]The Prices
    [Usaco2013 Nov]No Change
  • 原文地址:https://www.cnblogs.com/acgpiano/p/4191824.html
Copyright © 2020-2023  润新知