每次做笔试都给自己降维式打击,不是一般的菜。
但是也不能自暴自弃啊,毕竟还要迎接秋招的暴风雨。
第一题:
(截图是从牛客帖子上找的,不是我考试时截的)
菜鸟只A了46%,但是这个通过率还是不准确的,因为我写的逻辑就不对,不知道后台是给的什么样的测试用例。后来又自己想了一下,先附上代码:
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main() {
int n, m, x;
cin >> n >> m >> x;
vector<int>a(n, 0);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
sort(a.begin(), a.end());
int min0 = a[0];
min0 = a[0] + x;
a[0] += x;
for (int i = 1; i < m; i++) {
sort(a.begin(), a.end());
int curMin = a[0];
if (curMin == min0) {
min0 += x;
}
a[0] + x;
}
cout << min0 << endl;
return 0;
}
当时做笔试的时候不知道怎么了,脑子浆糊了。现在觉着这题挺简单的。
解题思路:
用min0来记录最矮的小草的高度,在每次使用药水后判断最开始最矮小的小草是否还是最矮的,若是,则给min0+x。得到最终的输出min0.
第二题:
令x为序列中最小的重复的数字,删除序列左数第一个x,把第二个x替换为2*x,输出最终序列.
例如[2 2 1 1 1] 输出[4 2 1], [5 5 5 5 4]输出[20 4], [1 2 1 2 1 1] 输出[8], [-1 -2 -1 -1]输出[-4 -1]
(待完善。。。)