b_lc_骑士通关(贪心+懒惰思想)
2021/4/10 18:45:09
本文主要是介绍b_lc_骑士通关(贪心+懒惰思想),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
n 个房间,每个房间的补血道具/怪物对于血量影响记于数组 A,其中正数表示道具补血数值,即血量增加对应数值;负数表示怪物造成伤害值。调整,每次仅能将一个怪物房间(负数的房间)调整至访问顺序末尾。返回最少需要调整几次,才能顺利访问所有房间。若调整顺序也无法访问完全部房间,请返回 -1。
思路:一直走,当下先不要想着怎么调整哪个位置。懒惰贪心思想,直到血量s<=0我才去调整,由于是懒惰调整,所以我需要将以前的位置存到一个容器里,且调整的时候将容器里消耗最大的移到最后
class Solution { public: int magicTower(vector<int>& A) { if (accumulate(A.begin(), A.end(), 0ll) < 0) return -1; priority_queue<int, vector<int>, greater<int>> q; long long s = 1, ans = 0; for (int x : A) { s += x; if (x < 0) q.push(x); if (s <= 0) { s -= q.top(); q.pop(); ans++; } } return ans; } };
这篇关于b_lc_骑士通关(贪心+懒惰思想)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27Rocket消息队列资料:新手入门指南
- 2024-11-27rocket消息队资料详解与入门指南
- 2024-11-27RocketMQ底层原理资料详解入门教程
- 2024-11-27RocketMQ项目开发资料:新手入门教程
- 2024-11-27RocketMQ项目开发资料详解
- 2024-11-27RocketMQ消息中间件资料入门教程
- 2024-11-27初学者指南:深入了解RocketMQ源码资料
- 2024-11-27Rocket消息队列学习入门指南
- 2024-11-26Rocket消息中间件教程:新手入门详解
- 2024-11-26RocketMQ项目开发教程:新手入门指南