9.14百度笔试 2道编程题

太难了。想问做游戏积分题咋做的啊,我先按截止时间排序再动归,只能过0.37#百度#
全部评论
大佬收到面试通知没?
点赞 回复 分享
发布于 2021-09-18 13:09
40% 91%剩下9%想不出来😥
点赞 回复 分享
发布于 2021-09-15 00:23
应该是贪心? 动规我是没过,不知道是不是写错了
点赞 回复 分享
发布于 2021-09-14 22:55
用了最大堆和最小堆,交卷了才想起来哪里错了。有大佬看看这样改对吗。 vector<pair<int, int>> arr; sort(arr.begin(), arr.end()); long long max_score = 0; int l = 10; int r = 20; int i = 0; priority_queue<int, vector<int>, greater<int>> result; while(i < N) {     priority_queue<int, vector<int>, less<int>> temp;     while(i < N && arr[i].first >= l && arr[i].first < r)     {         temp.push(arr[i].second);         i++;     }     if (!temp.empty())     {         int count = l / 10 - result.size();         while(count > 0 && !temp.empty()){         result.push(temp.top());         temp.pop();         count--;         }     }     while(temp.empty() == false && temp.top() > result.top())     {         result.pop();         result.push(temp.top());         temp.pop();     }     l += 10;     r += 10; } while(!result.empty()) {     max_score += result.top();     result.pop(); } cout << max_score << endl;
点赞 回复 分享
发布于 2021-09-14 21:43
算法岗笔试吗?
点赞 回复 分享
发布于 2021-09-14 21:21
贪心
点赞 回复 分享
发布于 2021-09-14 21:21
直接用最大时间//10,得到时间段,然后对积分进行排序,获得对应时间段数量里的最大积分,哈哈,45%
点赞 回复 分享
发布于 2021-09-14 21:12
所以大哥做出来多少。
点赞 回复 分享
发布于 2021-09-14 21:12

相关推荐

评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务