贝壳8.13笔试,1,2题

第一题:
如果暴力解的话,会超时。
这里注意long long,不然long long 转到int会丢数据,导致结果不正确

vector<long> FarmerNN(int n, long long m) {
    // write code here
    vector<long> tian(n, 0);
    long long yushu = m % (2 * (n - 1));
    long long sum = (m- yushu )/ (2 * (n - 1));
    tian[0] = sum;
    tian[n-1] = sum;
    sum = 2 * sum;
    for (int i = 1; i < tian.size()-1; i++) {
        tian[i] = sum;
    }
    long long sa = 0;
    int p = 0;
    bool flag = 0;//0,向前+,1向后-
    while (sa < yushu) {
        //到头了,转向
        if (p == (n - 1)) {
            flag = 1;
        }
        if (p == 0) {
            flag = 0;
        }
        if (flag == 0) {
            tian[p] += 1;
            ++p;
        }
        else {
            tian[p] += 1;
            --p;
        }
        ++sa;
    }
    return tian;
}

第二题:
这个就超级简单

string NS_String(string s, int k) {
    // write code here
    string result = s;
    for (int t = 0; t < k; t++) {
        int size = s.size();
        int min = 500;
        int p = 0;
        for (int i = 0; i < size; i++) {
            if (s[i]-'a'<=min) {
                min = s[i] - 'a';
                p = i;
            }
        }
                //把找出来的最小的字符都删掉
        char temp = s[p];
                //这块注意for的结束条件i < s.size();,还有--i;
        for (int i = 0; i < s.size(); i++) {
            if (temp == s[i]) {
                s.erase(i, 1);
                --i;
            }
        }
        cout << s << endl;
    }
    return s;
}
#贝壳笔试##贝壳找房##笔经#
全部评论

相关推荐

1 1 评论
分享
牛客网
牛客企业服务