5.14奇安信C++笔试
#奇安信#
第一题 100%
第二题 50%
X感觉写的很对,为什么错了呢,有无大佬帮忙看看X
感谢评论区大佬给出错误原因,已经搞懂了
class Solution {
public:
vector<long long> vec;
bool check(long long mid)
{
priority_queue<long long> q;
for(int i = 0; i < 5; i ++) q.push(mid);
for(auto x : vec)
{
long long t = q.top();
q.pop();
q.push(t - x);
}
if(q.top() > 0) return false;
else return true;
}
int maxTime(vector<int>& bat) {
for(auto x : bat) vec.push_back(x);
sort(vec.begin(), vec.end(), greater<long long>());
int n = vec.size();
long long l = 0, r = vec[0] * n / 5;
while(l < r)
{
long long mid = (l + r + 1) / 2;
if(check(mid)) l = mid;
else r = mid - 1;
}
return l;
}
};
第一题 100%
第二题 50%
X感觉写的很对,为什么错了呢,有无大佬帮忙看看X
感谢评论区大佬给出错误原因,已经搞懂了
class Solution {
public:
vector<long long> vec;
bool check(long long mid)
{
priority_queue<long long> q;
for(int i = 0; i < 5; i ++) q.push(mid);
for(auto x : vec)
{
long long t = q.top();
q.pop();
q.push(t - x);
}
if(q.top() > 0) return false;
else return true;
}
int maxTime(vector<int>& bat) {
for(auto x : bat) vec.push_back(x);
sort(vec.begin(), vec.end(), greater<long long>());
int n = vec.size();
long long l = 0, r = vec[0] * n / 5;
while(l < r)
{
long long mid = (l + r + 1) / 2;
if(check(mid)) l = mid;
else r = mid - 1;
}
return l;
}
};
全部评论
就是每次不能把电用光,每次用一分钟然后重新排序,100,100,100,100,95,10 你这样计算结果是100, 但每次不用光电量, 15,15,15,15,10,10->14,14,14,14,9,10 然后不断用新的最大值替换,可以得到101
我也是,我还发现是原题。。。
第一题咋写啊。。
我也是50%
第二题我也是百分之五十
题主,请问一下,能不能发一下第一题的过程?
啥时候投的呀,我5号投的现在还没有消息😭
我知道错哪了,但不知怎么改,你输入15个100,输出结果是200,但结果是300
相关推荐
查看11道真题和解析 点赞 评论 收藏
分享
2025-11-13 14:37
门头沟学院 Java 程序员牛肉:是的,我觉得你最先需要的是多接触计算机圈子。我感觉你这个写的太幼稚了,根本没换位思考面试官。
你对实习的描述还是我写了前后端,我写了Restful接口,我用了EChatrs。你这让面试官怎么问你?问你什么是前后端?问你什么是Restful?讲真的兄弟,你这个简历在面试官眼里就是啥也不懂的好学生。所以一定要尽快加入一个圈子跟大家多聊聊,看看正儿八经的简历是怎么写的。
可以看一下我首页的简历怎么写那篇文章来学一下,你这里面的坑点我那篇文章里面都有讲过。
点赞 评论 收藏
分享