zoukankan      html  css  js  c++  java
  • 美团点评2018笔试编程题

    不好意思,没有全部AC,两个题每个都只过了80%,但是到目前为止还是不知道那20%卡在哪里???

    第一题:将一个整数拆成一些非0的数字,要求,长度尽可能长,数字的和等于这个整数,相邻两个数不能相等。

    eg: 1 --->   1

           2--->   2

           3--->   12

           4--->   121

    思路:数字尽可能小,长度就尽可能大了;还要满足相邻的数不同,那么可以选择间隔:

    代码:

    #include<iostream>
    #include<vector>
    #include<string>
    #include<deque>
    using namespace std;
    #include<map>
    int main()
    {
        int s;
        cin >> s;
        vector<int> vc;
        if (s == 1)
        {
            cout << 1 << endl;
            return 0;
        }
        if (s == 2)
        {
            cout << 2 << endl;
            return 0;
        }
        if (s > 2)
        {
            int yu = s % 3;
            int sh = s / 3;
            while (sh)
            {
                vc.push_back(1);
                vc.push_back(2);
                --sh;
            }
            if (yu != 0)
            {
                vc.push_back(yu);
            }
        }
        for (int i = vc.size() - 1; i >= 0; --i)
        {
            cout << vc[i];
        }
        cout << endl;
        return 0;
    }

    第二题:

    输入一个n表示数组长度,输入m表示放在数组前的数的个数,例如:

    输入4 2

            3 2

    输出 2 3 1  4

    代码:

    int main()
    {
        deque<int> vcn;
        vector<int> vcm;
        int n, m;
        int num;
        cin >> n >> m;
        for (int i = 0; i < n; ++i)
        {
            vcn.push_back(i + 1);
        }
        for (int i = 0; i < m; ++i)
        {
            cin >> num;
            vcm.push_back(num);
        }
        for (int i = 0; i < m; ++i)
        {
            for (int j = 0; j < n; ++j)
            {
                deque<int>::iterator it = vcn.begin();
                if (vcn[j] == vcm[i])
                {
                    int mm = vcn[j];
                    it += j;
                    vcn.erase(it);
                    vcn.push_front(mm);
                }
                    
            }
        }
        for (int i = 0; i < n; ++i)
        {
            cout << vcn[i] << endl;
        }
        return 0;
    }
  • 相关阅读:
    【JavaEE】之MyBatis开发DAO
    【JavaEE】之MyBatis与原生JDBC、Hibernate访问数据库的比较
    【JavaEE】之MyBatis插入数据后获取自增主键
    【JavaEE】之MyBatis的ParameterType的使用
    【Android
    【Android
    【设计模式】
    【设计模式
    架构师十项技能
    tcp 出现rst情况整理
  • 原文地址:https://www.cnblogs.com/cjn123/p/10666388.html
Copyright © 2011-2022 走看看