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

leetcode 每日一题

2398.预算内最多的机器人数目

2024年9月13日

滑动窗口+单调队列:

        题目里表述的不太清楚,连续工作的机器人,就是求满足条件的最长子数组;这题可以说是滑动窗口最大值的进阶版本。

        关于滑动窗口不要自己想当然的写,是有基本的模版的,要以右指针为基准;滑动窗口算法思想(附经典例题)_滑动窗口的思想-CSDN博客。

        滑动窗口表示当前选择的区间,我们要判断当前区间是否符合条件,即总开销是否小于budget;就需要:①当前区间的chargeTime最大值;②当前区间的所以runningCost之和。

  • 对于①,不就是滑动窗口最大值,只不过区间长度变化了,想想当时的做法
    • 单调队列:每遍历到一个新的元素,队列尾部的小于它的元素都出队,新元素入队,保证队列单调递减的特性;
    • 选出当前区间的max:这就简单了,判断队列头是否在当前区间内,不在就出队直到在当前区间内;
  • 对于②:
    • 首先清楚,当前区间;
    • 滑动窗口右指针每加一次,窗口就纳入了一个元素,这个元素的runningCost要算上;
    • 左指针每加一次,窗口就排除了一个元素,这个元素不在当前要判断的窗口内了,runningCost要减去;
  • 还有一点代码提示,单调栈里存的是数组的index,而不是数组元素;所以取元素的时候是nums[ deque.peek() ] 这种而不是deque.peek()

        窗口区间缩小的条件是总开销大于budget,l++;直到窗口满足条件,r++遍历下一个右指针基准;对于滑动窗口的每个循环,都要入和出,在入和出的时候要做些什么,想清楚;

        

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【C++】—— list 的了解与使用
  • 使用3-8译码器实现全减器(Verilog详细解析设计篇)
  • React两种路由模式的实现原理
  • 2024.9.13 Python与图像处理新国大EE5731课程大作业,索贝尔算子计算边缘,高斯核模糊边缘,Haar小波计算边缘
  • SpringBoot 整合酷狗获取下载音乐(需要自己账户)
  • 基于鸿蒙API10的RTSP播放器(四:沉浸式播放窗口)
  • 微软 Azure AI 服务免费试用及申请:语音识别、文本转语音、基于视觉、语言处理、文档分析等10大场景
  • EP12 分类列表元素点击跳转
  • 医学数据分析实训 项目一 医学数据采集
  • 深入解读Docker核心原理:Namespace资源隔离机制详解
  • SPDK 部署NVMe over TCP
  • golang学习笔记19——golang做服务发现与注册的深度剖析
  • PHP在现代Web开发中的高效应用与最佳实践
  • 【C++】模拟实现string类
  • LabVIEW重构其他语言开发的旧系统
  • python3.6+scrapy+mysql 爬虫实战
  • 2017前端实习生面试总结
  • 345-反转字符串中的元音字母
  • 4个实用的微服务测试策略
  • Android Studio:GIT提交项目到远程仓库
  • CSS魔法堂:Absolute Positioning就这个样
  • ES6之路之模块详解
  • JavaScript学习总结——原型
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • mysql常用命令汇总
  • Python打包系统简单入门
  • Redis中的lru算法实现
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 警报:线上事故之CountDownLatch的威力
  • 那些年我们用过的显示性能指标
  • 山寨一个 Promise
  • 深度学习入门:10门免费线上课程推荐
  • 译自由幺半群
  • 正则表达式-基础知识Review
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • #define与typedef区别
  • $GOPATH/go.mod exists but should not goland
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)
  • (Note)C++中的继承方式
  • (办公)springboot配置aop处理请求.
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (六)c52学习之旅-独立按键
  • (十八)三元表达式和列表解析
  • (学习日记)2024.01.19
  • (源码分析)springsecurity认证授权
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .Net 代码性能 - (1)