10.15百度秋招笔试题目+解析
第一题:暴力或者优先队列,因为数据范围很小可以直接暴力枚举所有可能情况,或者每次取小根堆的最小值++,重复k次
第二题:dp,找出每个以每个点结尾的最大子段和以及以每个点为起点的最大子段和,那么枚举每个点和另一个与它间隔为k+1的点的最大子段和求一个max即可
#秋招##百度##笔试##校招#
第二题:dp,找出每个以每个点结尾的最大子段和以及以每个点为起点的最大子段和,那么枚举每个点和另一个与它间隔为k+1的点的最大子段和求一个max即可
#秋招##百度##笔试##校招#
全部评论
第二题一样的思路,但是只通过了64%,不知道哪里出了问题
#include <iostream>
(30316)#include <vector>
#include <algorithm>
using namespace std;
int main() {
int T;
cin >> T;
while (T--) {
int a, b, c, d, k;
cin >> a >> b >> c >> d >> k;
vector<int> numbers = {a, b, c, d};
// 进行k次操作
for (int i = 0; i < k; ++i) {
// 找到列表中的最小数
auto min_iter = min_element(numbers.begin(), numbers.end());
// 将最小数加1
*min_iter += 1;
}
// 计算乘积
int product = 1;
for (int num : numbers) {
product *= num;
}
cout << product << endl;
}
return 0;
}
为啥第一题我通过率只有9%
好像就咱算法的题最简单,选择编程感觉是秋招以来最简单的一家
大佬 第二题为什么只需要枚举间隔k+1就好啊
为啥我的有三道呀
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享

点赞 评论 收藏
分享
点赞 评论 收藏
分享