LCP21 魔塔游戏
LCP 30. 魔塔游戏
难度中等10收藏分享切换为英文接收动态反馈
小扣当前位于魔塔游戏第一层,共有
N
个房间,编号为0 ~ N-1
。每个房间的补血道具/怪物对于血量影响记于数组nums
,其中正数表示道具补血数值,即血量增加对应数值;负数表示怪物造成伤害值,即血量减少对应数值;0
表示房间对血量无影响。小扣初始血量为 1,且无上限。假定小扣原计划按房间编号升序访问所有房间补血/打怪,为保证血量始终为正值,小扣需对房间访问顺序进行调整,每次仅能将一个怪物房间(负数的房间)调整至访问顺序末尾。请返回小扣最少需要调整几次,才能顺利访问所有房间。若调整顺序也无法访问完全部房间,请返回 -1。
示例 1:
输入:
nums = [100,100,100,-250,-60,-140,-50,-50,100,150]
输出:
1
解释:初始血量为 1。至少需要将 nums[3] 调整至访问顺序末尾以满足要求。
示例 2:
输入:
nums = [-200,-300,400,0]
输出:
-1
解释:调整访问顺序也无法完成全部房间的访问。
提示:
1 <= nums.length <= 10^5
-10^5 <= nums[i] <= 10^5
/**优先队列+贪心,题解区好理解的答复https://leetcode-cn.com/problems/p0NxJO/solution/java-tan-xin-you-xian-dui-lie-yi-dong-sh-vz2o/如何贪心使得移动次数最少?思考2个问题:什么时候移动?前缀和 ≤ 0 时移动哪个元素?已经遇到的所有负数中最小的元素
**/class Solution {public int magicTower(int[] nums) {long preSum=0;long totalSum=0;int count=0;PriorityQueue<Integer> minheap=new PriorityQueue<Integer>();for(int i=0;i<nums.length;i++){if(nums[i]<0){minheap.add(nums[i]);}preSum+=nums[i];totalSum+=nums[i];while(preSum<0&&!minheap.isEmpty()){preSum-=minheap.poll();count++;}}if(totalSum<0)return -1;return count;}
}
LCP21 魔塔游戏相关推荐
- LeetCode LCP 30. 魔塔游戏(优先队列)
文章目录 1. 题目 2. 解题 1. 题目 小扣当前位于魔塔游戏第一层,共有 N 个房间,编号为 0 ~ N-1. 每个房间的补血道具/怪物对于血量影响记于数组 nums,其中: 正数表示道具补血数 ...
- python3.7魔塔游戏_基于Funcode平台的“火锅版魔塔”游戏开发与设计
2019 年第 2 期 信息与电脑 China Computer & Communication 软件开发与应用 基于 Funcode 平台的"火锅版魔塔"游戏开发与设计 ...
- java魔塔_基于java的魔塔游戏的设计与实现论文.docx
毕业设计(论文)题目: 基于java的魔塔游戏的设计与实现 毕业设计(论文)要求及原始数据(资料): 1.了解和运用Java面向对象的特性: 2.熟练掌握模块化设计的思想,锻炼使用java语言的能力: ...
- HTML5 canvas 游戏设计:创建一个经典的魔塔游戏
整个项目都已经开源,项目地址:https://github.com/m8705/MAGIC-TOWER-JS 注:这是我高中时候的作品,BUG 很多,已经不再更新了.下载项目到本地就能玩. 前言 魔塔 ...
- 用C语言实现CLI界面的魔塔游戏
简介 本着开源的精神,我分享下我做的数据结构大作业,我当时选择的是 游戏设计题目,由于魔塔基础的机制不太复杂,所以就借着大作业设计了个简易的魔塔游戏.这是游戏界面: 以下是我当时大作业内容: 我把大作 ...
- C课程设计——魔塔游戏
文章目录 纯C实现命令行魔塔游戏 项目地址 关于 特性 详细设计 关键架构 创建工厂模块 碰撞检测模块 场景模块 基类模块 子类模块 英雄人物模块 怪物模块 ... 纯C实现命令行魔塔游戏 详细流程图 ...
- 力扣——魔塔游戏
题目概述: 小扣当前位于魔塔游戏第一层,共有 N 个房间,编号为 0 ~ N-1.每个房间的补血道具/怪物对于血量影响记于数组 nums,其中正数表示道具补血数值,即血量增加对应数值:负数表示怪物造成 ...
- LCP 30.魔塔游戏
题目 小扣当前位于魔塔游戏第一层,共有 N 个房间,编号为 0 ~ N-1.每个房间的补血道具/怪物对于血量影响记于数组 nums,其中正数表示道具补血数值,即血量增加对应数值:负数表示怪物造成伤害值 ...
- 力扣刷题 - LCP 30. 魔塔游戏
题目: 小扣当前位于魔塔游戏第一层,共有 N 个房间,编号为 0 ~ N-1.每个房间的补血道具/怪物对于血量影响记于数组 nums,其中正数表示道具补血数值,即血量增加对应数值:负数表示怪物造成伤害 ...
最新文章
- Asp.net 面向接口可扩展框架之核心容器
- linux查看帮助信息,命令帮助信息的获取
- Java实验9 T3.对二进制数据文件中的所有数据求和
- 深度学习解决NLP问题:语义相似度计算
- C++赋值运算符重载函数(operator=)
- 我用.Net做的一些系统及参与测试的系统
- 数字图像处理(三):函数fspecial
- XXL-JOB任务调度
- C语言 一步步教你做一个带有图形界面的冒险小游戏
- vue 页脚_前端必懂之Sticky Footer(粘性页脚)
- STM32L051测试 (三、I2C协议设备的添加测试)
- 【Java】maven-shaded-plugin超详细详解
- [编程入门]猴子吃桃的问题(JAVA解法)
- 学神、学霸的学生,靠的不是1%的天赋和智商,更不是努力,而是它
- viterbi,维特比算法通俗理解
- 综述 | 实例分割研究
- android 点9图使用教程,Android Studio中点9图片的详细使用教程
- 用python写一个简答的英文文章分析程序
- sheng的学习笔记-Vector源码分析
- 面试字节跳动测试岗位一般问什么测试点_字节跳动面试问题集合
热门文章
- 树莓派自动挂载usb移动存储设备
- 线性表的基本操作及应用(单链表的创建、插入、删除、查找、显示)
- (java)防止数字被转换成科学计数法解决方法
- 潇洒郎: Cuda9.0 100%安装pytorch 成功
- 改变社交与工作状态的新型软件
- 根治Windows 2003操作系统登录及关机麻烦
- 如何自建微信外卖平台_怎么在微信上做外卖?
- 动态规划之背包问题(JAVA)
- ROS工业机器人 ROS-I Kinetic培训课程
- [HY000][1366] Incorrect string value: '\xE3\x81\x94\xE6\xB3\xA8...' for column 'content' at row 1