4.12字节跳动笔试,只A了一道。。。

贴一下第一题和第四题的代码吧,第一题AC,第四题暴力,过了71%;第二题第三题没啥思路。

第一题
#include<bits/stdc++.h>
using namespace std;

/*
2
6
3 7 1 4 1 2
3 7 3 6 3 2
5
1 1 1 1 1
1 2 1 3 1
*/
bool go(const vector<int>& array1, const vector<int>& array2, const int& n) {
    vector<int> diff(n);
    int diff_ = 0;
    int flag = 0;
    for (int i = 0; i < n; i++) {
        diff[i] = array1[i] - array2[i];
        if (diff[i] != 0) {
            if (!flag) {
                flag = 1;
                diff_ = diff[i];
            }
            else if (diff[i] != diff_) return false;
            else if (diff[i] != diff[i - 1]) return false;
        }
    }
    return true;
}
int main() {
    int t; cin >> t;

    while (t--) {
        int n; cin >> n;
        vector<int> array1(n);
        vector<int> array2(n);
        for (int i = 0; i < n; i++) {
            cin>>array1[i];
        }
        for (int i = 0; i < n; i++) {
            cin >> array2[i];
        }
        if (go(array1, array2, n)) cout << "YES"<<endl;
        else cout << "NO"<<endl;
    }
}

第四题
#include<bits/stdc++.h>
using namespace std;

/*
3
4
1 4 3 3
5
8 2 2 4 6
6
5 8 1 3 2 9
*/

int main() {
    int t; cin >> t;
    while (t--) {
        int n; cin >> n;
        vector<int> house(n);
        vector<int> ans(n);
        int max_idx = 0;
        for (int i = 0; i < n; i++)
        {
            cin >> house[i];
            if (house[i] > house[max_idx]) max_idx = i;
        }
        for (int i = 0; i < n; i++)
        {
            if (i == max_idx) {
                ans[i] = n - 1;
                continue;
            }
            int ans_ = 0;
            int left = i - 1, right = i + 1;
            while (left >= 0 && house[left] <= house[i]) {
                ans_++;
                left--;
            }
            while (right <= n-1 && house[right] <= house[i]) {
                ans_++;
                right++;
            }
            ans[i] = ans_;
        }
        for (int i = 0; i < n; i++)
        {
            if(i != n - 1) cout << ans[i] << " ";
            else {
                cout << ans[i] << endl;
            }
        }

    }
    

}






#字节跳动校园招聘##字节跳动##笔试题目#
全部评论
请问楼主有收到面试吗?
点赞 回复
分享
发布于 2020-05-11 16:26

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务