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

DeepSeek LeetCode 2398. 预算内的最多机器人数目 public int maximumRobots(int[] chargeTimes, int[]

这道题是典型的滑动窗口 + 单调队列问题。
核心条件是:

· 选定连续的子数组(机器人下标连续)
· 总费用 = max(chargeTimes[i..j]) + (j-i+1) * sum(runningCosts[i..j])
· 要求总费用 ≤ budget
· 返回最长的子数组长度

思路

1. 用滑动窗口维护区间 [left, right]
2. 用单调递减队列快速获取当前窗口内的 maxChargeTimes
3. 若当前窗口费用超预算,收缩左边界
4. 每次记录窗口最大长度

---

代码

```java
class Solution {
public int maximumRobots(int[] chargeTimes, int[] runningCosts, long budget) {
int n = chargeTimes.length;
Deque<Integer> deque = new ArrayDeque<>(); // 存储索引,队首为最大 chargeTimes 的索引
long sumRunning = 0;
int left = 0;
int ans = 0;

for (int right = 0; right < n; right++) {
// 1. 维护单调递减队列
while (!deque.isEmpty() && chargeTimes[deque.peekLast()] <= chargeTimes[right]) {
deque.pollLast();
}
deque.offerLast(right);

// 2. 累加 runningCosts
sumRunning += runningCosts[right];

// 3. 若费用超预算,移动左边界
while (!deque.isEmpty() &&
chargeTimes[deque.peekFirst()] + (right - left + 1) * sumRunning > budget) {
// 如果左边界正好是队首元素,则弹出
if (deque.peekFirst() == left) {
deque.pollFirst();
}
sumRunning -= runningCosts[left];
left++;
}

// 4. 更新答案
ans = Math.max(ans, right - left + 1);
}
return ans;
}
}
```

---

复杂度

· 时间:O(n),每个元素最多入队出队一次
· 空间:O(n),单调队列空间

---

示例

输入:

```
chargeTimes = [3,6,1,3,4]
runningCosts = [2,1,3,4,5]
budget = 25
```

输出:

```
3
```

http://www.jsqmd.com/news/825591/

相关文章:

  • 高性能缓冲管理中的数组翻译技术解析
  • 前端搜索框焦点管理:从交互细节到工程实践
  • 2026年近期,专业定制与品质保障:汕头杯盖膜市场优选厂商分析 - 2026年企业推荐榜
  • ARM GIC寄存器架构与ERRPIDR解析
  • PIM-LLM:1-bit量化大语言模型的混合内存计算架构
  • 网络IO模型-从BIO到IO多路复用
  • ARM AArch32系统寄存器架构与虚拟化实践
  • DeepSeek LeetCode 2398. 预算内的最多机器人数目 JavaScript实现
  • Android Recovery 模式工作原理与定制实战
  • 基于LLM的自主智能体框架zorro-agent:从规划到执行的实战指南
  • 终极raylib游戏开发指南:如何在3天内从零到一创建跨平台游戏
  • Windows系统修复工具winfix:命令行自动化修复实战指南
  • 开源项目深度解构指南:从零剖析Apfel项目全流程
  • IntelliJ IDEA 试用过期怎么办?傻瓜式一键重置使用时间(支持2026版)
  • 5大核心功能解析:fre:ac音频转换器如何解决你的音频处理难题
  • Amanmcp:统一云原生与容器化开发运维的CLI工具集实践
  • 掌握6个采购管控节点,企业采购成本可直接降低15%—30%
  • 防抖、节流业务实战:场景落地、兼容方案与取消方法
  • 【TikTok创作者生存警报】:Sora 2已上线API灰度通道,掌握这6类结构化Prompt的人正批量收割流量红利
  • RAGNA框架:专为RAG实验设计的标准化编排器与对比评估平台
  • 你的实验动物在‘跳舞’?可能是DeepLabCut安装没选对版本(Win11实测GPU/CPU性能对比)
  • 想找丙纶生态袋直销厂家?这些不容错过!
  • Saucony索康尼 TRIUMPH 胜利 24 焕新登场 百年跑鞋世家旗舰迭代,再塑精英运动生活新范式
  • Go性能优化实战:使用booster提升高并发服务性能
  • CodeAct:让AI通过代码执行实现自主行动的智能体框架
  • 从零到一:Ubuntu Server上构建生产级Slurm计算集群
  • Streamlit Session State 初始化常见误区与正确使用指南
  • 对话式AI智能中继与编排框架:构建高可用AI应用的核心架构
  • 别再只会用ROUND了!Excel里这8个舍入函数,财务和数据分析师天天在用
  • 人工盘点VS首码U位系统,机房管理效率差10倍?看完秒懂