当前位置: 首页 > news >正文

2024.2.6力扣每日一题——魔塔游戏

2024.2.6

      • 题目来源
      • 我的题解
        • 方法一 贪心+优先队列

题目来源

力扣每日一题;题序:LCP 30

我的题解

方法一 贪心+优先队列

思路:使用贪心的思想,从左到右遍历,若遇到加上当前房间的生命值后小于等于0,由于需要调整的次数最小,则贪心地将当前以及前面房间中生命值最小的移到末尾。直到遍历完所有房间。
具体:在遍历房间的过程中,将为负数的生命值加入到一个小根堆pq中,当计算完每个房间的生命值sum影响后,如果生命值sum小于等于0,则将堆顶元素取出,并使用外的变量other记录从小根堆pq中取出元素的和,这时需要在生命值中补回相应的生命值以及调整次数加1。当遍历完所有房间有,再将other的值重新加入到sum中,若最终的sum小于等于0,则表示无解。

时间复杂度:O(nlogn)。需要遍历一次数组O(n),并且遍历过程中存在优先队列的入队和出队操作O(logn)
空间复杂度:O(n)。最多所有的元素都为负数。

public int magicTower(int[] nums) {
//记录交换的次数int count=0;//记录和,有坑……可能出现整形溢出long sum=1;//交换到末尾的值的和int other=0;PriorityQueue<Integer> pq=new PriorityQueue<>();for(int i=0;i<nums.length;i++){int t=nums[i];//若为负数加入到小根堆if(t<0)pq.offer(t);//更新和sum+=t;//判断更新后的和是否小于等于0if(sum<=0){int temp=pq.poll();//补回生命值sum-=temp;//交换到末尾的和other+=temp;count++;}}//最终加上交换到末尾的负数和sum+=other;return sum>0?count:-1;
}

有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~

相关文章:

2024.2.6力扣每日一题——魔塔游戏

2024.2.6 题目来源我的题解方法一 贪心优先队列 题目来源 力扣每日一题&#xff1b;题序&#xff1a;LCP 30 我的题解 方法一 贪心优先队列 思路&#xff1a;使用贪心的思想&#xff0c;从左到右遍历&#xff0c;若遇到加上当前房间的生命值后小于等于0&#xff0c;由于需要…...

C# OAuth单点登录的实现

原理 单点登录&#xff08;Single Sign-On&#xff0c;简称SSO&#xff09;是一种身份验证技术&#xff0c;它允许用户使用一组凭据&#xff08;如用户名和密码&#xff09;登录多个相关但独立的系统&#xff0c;而无需在每个系统中都进行登录操作。下面是一个简单的SSO实现示…...

AtCoder Beginner Contest 347 (ABCDEF题)视频讲解

A - Divisible Problem Statement You are given positive integers N N N and K K K, and a sequence of length N N N, A ( A 1 , A 2 , … , A N ) A(A_1,A_2,\ldots,A_N) A(A1​,A2​,…,AN​). Extract all elements of A A A that are multiples of K K K, divi…...

【vue2+antvx6】报错Cannot read properties of undefined (reading ‘toUpperCase‘)

我的代码是这样的 <el-collapseref"collapse"v-model"active"accordionclass"collapseStart"change"collapsechange"><el-collapse-item:name"String(index 1)"v-for"(i, index) in List":key"in…...

主流的开发语言、环境及其特点

主流的开发语言及其特点&#xff1a; 1. Python&#xff1a;以其简洁的语法和强大的库支持而闻名&#xff0c;适用于数据科学、人工智能和网络开发等领域。 2. Java&#xff1a;跨平台的编程语言&#xff0c;广泛应用于企业级应用、Android 开发和大型系统开发。 3. C&#xf…...

Android知识 - 代码混淆ProGuard规则介绍

ProGuard 的规则及示例 规则概述 ProGuard 是一个代码优化工具&#xff0c;它通过移除未使用的代码、重命名类、字段和方法等方式来减小应用的大小。在 ProGuard 的配置文件中&#xff0c;我们可以定义一系列的规则来控制优化和混淆的过程。 规则语法 ProGuard 的规则通常包…...

【Linux的进程篇章 - 冯诺依曼的体系结构】

Linux学习笔记---005 Linux冯诺依曼体系结构理解1、冯诺依曼体系结构1.1、冯诺依曼体系结构1.2、硬件层面1.3、数据层面1.4、那么冯诺依曼体系能干什么呢&#xff1f; 2、操作系统(Operastor System)2.1、概念2.2、操作系统层的核心功能 3、进程的初步理解 Linux冯诺依曼体系结…...

flask-(数据连接池的使用,定制命令,信号的使用,表关系的建立和查询)

文章目录 连接池实例flask定制命令flask 缓存的使用flask信号的使用sqlalchemy原生操作sqlalchemy操作表flask orm操作表一对多的增加和跨表查询 &#xff08;一对一只需要关联字段加上 ,uniqueTrue&#xff09;多对多关系的增加和查询多对多基本的增删改查 连接池 import pymy…...

设计模式学习笔记 - 设计模式与范式 -行为型:2.观察者模式(下):实现一个异步非阻塞的EventBus框架

概述 《1.观察者模式&#xff08;上&#xff09;》我们学习了观察者模式的原理、实现、应用场景&#xff0c;重点节介绍了不同应用场景下&#xff0c;几种不同的实现方式&#xff0c;包括&#xff1a;同步阻塞、异步非阻塞、进程内、进程间的实现方式。 同步阻塞最经典的实现…...

数据挖掘|贝叶斯分类器及其Python实现

分类分析|贝叶斯分类器及其Python实现 0. 分类分析概述1. Logistics回归模型2. 贝叶斯分类器2.1 贝叶斯定理2.2 朴素贝叶斯分类器2.2.1 高斯朴素贝叶斯分类器2.2.2 多项式朴素贝叶斯分类器 2.3 朴素贝叶斯分类的主要优点2.4 朴素贝叶斯分类的主要缺点 3. 贝叶斯分类器在生产中的…...

Linux文件(系统)IO(含动静态库的链接操作)

文章目录 Linux文件&#xff08;系统&#xff09;IO&#xff08;含动静态库的链接操作&#xff09;1、C语言文件IO操作2、三个数据流stdin、stdout、stderr3、系统文件IO3.1、相关系统调用接口的使用3.2、文件描述符fd3.3、文件描述符的分配规则3.3、重定向3.4、自制shell加入重…...

CI/CD实战-jenkins结合ansible 7

配置主机环境 在jenkins上断开并删除docker1节点 重新给master添加构建任务 将server3&#xff0c;server4作为测试主机&#xff0c;停掉其上后面的docker 在server2&#xff08;jenkins&#xff09;主机上安装ansible 设置jenkins用户到目标主机的免密 给测试主机创建用户并…...

内网渗透-(黄金票据和白银票据)详解(一)

目录 一、Kerberos协议 二、下面我们来具体分析Kerberos认证流程的每个步骤&#xff1a; 1、KRB_AS-REQ请求包分析 PA-ENC-TIMESTAMP PA_PAC_REQUEST 2、 KRB_AS_REP回复包分析&#xff1a; TGT认购权证 Logon Session Key ticket 3、然后继续来讲相关的TGS的认证过程…...

学习transformer模型-Dropout的简明介绍

Dropout的定义和目的&#xff1a; Dropout 是一种神经网络正则化技术&#xff0c;它在训练时以指定的概率丢弃一个单元&#xff08;以及连接&#xff09;p。 这个想法是为了防止神经网络变得过于依赖特定连接的共同适应&#xff0c;因为这可能是过度拟合的症状。直观上&#…...

游戏引擎中的大气和云的渲染

一、大气 首先和光线追踪类似&#xff0c;大气渲染也有类似的渲染公式&#xff0c;在实际处理中也有类似 Blinn-Phong的拟合模型。关键参数是当前点到天顶的角度和到太阳的角度 二、大气散射理论 光和介质的接触&#xff1a; Absorption 吸收Out-scattering 散射Emission …...

华为鲲鹏云认证考试内容有哪些?华为鲲鹏云认证考试报名条件

华为鲲鹏云认证考试是华为公司为了验证IT专业人士在鲲鹏计算及云计算领域的专业能力而设立的一项认证考试。以下是关于华为鲲鹏云认证考试的一些详细信息&#xff1a; 考试内容&#xff1a;华为鲲鹏云认证考试的内容主要包括理论考核和实践考核两大部分。理论考核涉及云计算、…...

v3-admin-vite 改造自动路由,view页面自解释Meta

需求 v3-admin-vite是一款不错的后端管理模板&#xff0c;主要是pany一直都在维护&#xff0c;最近将后台管理也进行了升级&#xff0c;顺便完成一直没时间解决的小痛痒&#xff1a; 在不使用后端动态管理的情况下。我不希望单独维护一份路由定义&#xff0c;我希望页面是自解…...

FIFO存储器选型参数,结构原理,工艺与注意问题总结

🏡《总目录》 目录 1,概述2.1,写入操作2.2,读取操作2.3,指针移动与循环2.4,状态检测3,结构特点3.1,双口RAM结构3.2,无外部读写地址线3.3,内部读写指针自动递增3.4,固定深度的缓冲区4,工艺流程4.1,硅晶圆准备...

jvm高级面试题-2024

说下对JVM内存模型的理解 JVM内存模型主要是指Java虚拟机在运行时所使用的内存结构。它主要包括堆、栈、方法区和程序计数器等部分。 堆是JVM中最大的一块内存区域&#xff0c;用于存储对象实例。一般通过new关键字创建的对象都存放在堆中&#xff0c;堆的大小可以通过启动参数…...

DeepL Pro3.1 下载地址及安装教程

DeepL Pro是DeepL公司推出的专业翻译服务。DeepL是一家专注于机器翻译和自然语言处理技术的公司&#xff0c;其翻译引擎被认为在质量和准确性方面表现优秀.DeepL Pro提供了一系列高级功能和服务&#xff0c;以满足专业用户的翻译需求。其中包括&#xff1a; 高质量翻译&#xf…...

Honey Select 2终极汉化补丁:一站式解决语言障碍与功能扩展难题

Honey Select 2终极汉化补丁&#xff1a;一站式解决语言障碍与功能扩展难题 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 想象一下&#xff0c;你刚刚下载了备…...

如何轻松构建多平台直播录制系统的完整指南

如何轻松构建多平台直播录制系统的完整指南 【免费下载链接】stream-rec Automatic streaming record tool. Live stream and bullet comments recorder. 虎牙/抖音/斗鱼/Twitch/PandaTV/微博直播&#xff0c;弹幕自动录制 项目地址: https://gitcode.com/gh_mirrors/st/stre…...

C++ 管理类使用单例模式的特点与最佳实践

摘要:在 C++ 项目开发中,管理类(如日志管理器、配置管理器、资源管理器等)通常需要全局唯一实例。本文结合栈对象与指针的性能差异,深入探讨单例模式在管理类设计中的特点,并给出一个可复用的 CRTP 单例模板实现。 一、为什么管理类需要单例模式? 在大型 C++ 项目中,我…...

Node.js异步数据库操作:nedb-promises封装原理与实战指南

1. 项目概述&#xff1a;告别回调地狱&#xff0c;拥抱异步数据库操作 如果你在Node.js项目中用过NeDB&#xff0c;大概率对它的回调函数&#xff08;callback&#xff09;模式又爱又恨。NeDB本身是一个轻量级的嵌入式数据库&#xff0c;API设计简单直观&#xff0c;但在现代异…...

3分钟极速指南:网易云音乐无损FLAC批量下载神器

3分钟极速指南&#xff1a;网易云音乐无损FLAC批量下载神器 【免费下载链接】NeteaseCloudMusicFlac 根据网易云音乐的歌单, 下载flac无损音乐到本地.。 项目地址: https://gitcode.com/gh_mirrors/nete/NeteaseCloudMusicFlac 还在为寻找高品质音乐资源而烦恼吗&#x…...

Java源码学习:深入剖析Java的concurrent包源码之`ReentrantLock` 的精妙设计与云原生演进

引言&#xff1a;从 synchronized 到可编程的锁 在 Java 并发编程的演进史上&#xff0c;synchronized 关键字曾是开发者控制线程同步的唯一选择。它简单、易用&#xff0c;并由 JVM 保证其正确性。然而&#xff0c;随着应用复杂度的提升&#xff0c;其固有的局限性——如无法中…...

智慧树刷课插件:3个核心功能帮你告别重复点击,学习效率提升300%

智慧树刷课插件&#xff1a;3个核心功能帮你告别重复点击&#xff0c;学习效率提升300% 【免费下载链接】zhihuishu 智慧树刷课插件&#xff0c;自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树平台繁琐的手动操作…...

基于PSCAD的光伏-火电打捆直流送出系统建模与扰动特性仿真研究

基于PSCAD的光伏-火电打捆直流送出系统建模与扰动特性仿真研究 摘要 随着我国“双碳”目标的深入推进,以光伏为代表的新能源发电装机规模持续快速增长。然而,光伏发电具有间歇性和波动性特征,大规模并网对电力系统的安全稳定运行提出了严峻挑战。将光伏与火电打捆经高压直…...

HelmWave实战:声明式编排Kubernetes多Chart部署与GitOps集成

1. 项目概述&#xff1a;HelmWave&#xff0c;一个被低估的Helm编排利器如果你和我一样&#xff0c;长期在Kubernetes环境中管理着几十甚至上百个Helm Chart&#xff0c;那你一定对“Helm依赖地狱”和“多环境部署同步”这两个词深有感触。每次更新&#xff0c;手动执行一堆hel…...

精读双模态检测论文二十六|DefDeN(兰州大学)创新点拉满!门控融合+可变形去噪+对比学习,LiDAR-Camera 3D检测暴力涨点!!!

&#x1f525; 本文定位&#xff1a;CSDN 原创干货 | 兰州大学/卧龙岗大学 LiDAR-Camera 3D目标检测 SOTA 方案 &#x1f3af; 核心收益&#xff1a;一次性解决注意力融合三大痛点——收敛慢、计算量大、误检率高&#xff01;基于门控多模态融合单元&#xff08;GMFU&#xff0…...