news 2026/5/12 18:25:00

LeetCode 每日一题笔记 日期:2026.05.12 题目:1665. 完成所有任务的最少初始能量

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 每日一题笔记 日期:2026.05.12 题目:1665. 完成所有任务的最少初始能量

LeetCode 每日一题笔记

0. 前言

  • 日期:2026.05.12
  • 题目:1665. 完成所有任务的最少初始能量
  • 难度:中等
  • 标签:数组、贪心、排序

1. 题目理解

问题描述
给定二维数组tasks,其中tasks[i] = [实际消耗, 最低要求]
执行第 i 个任务必须满足:当前能量 ≥ 最低要求
执行后能量会减去实际消耗
求完成所有任务需要的最小初始能量

示例

输入:tasks = [[1,2],[2,4],[3,6],[4,8]]
输出:8

2. 解题思路

核心观察

  • 贪心策略:按(最低要求 - 实际消耗)降序排序
  • 先做“差值大”的任务,最后做“差值小”的任务,能让初始能量最小

算法步骤

  1. 排序:按(b - a)从大到小排序任务
  2. 先计算所有任务的总实际消耗(理论最低下限)
  3. 模拟执行任务,若当前能量不够最低要求,补充差值
  4. 最终得到最小初始能量

3. 代码实现

packagelc1665;importjava.util.Arrays;classSolution{publicintminimumEffort(int[][]tasks){Arrays.sort(tasks,(row1,row2)->{return(row2[1]-row2[0])-(row1[1]-row1[0]);});intres=0;for(inti=0;i<tasks.length;i++){res+=tasks[i][0];}inttemp=res;for(inti=0;i<tasks.length;i++){if(temp>=tasks[i][1]){temp-=tasks[i][0];}else{res+=tasks[i][1]-temp;temp=tasks[i][1]-tasks[i][0];}}returnres;}}

4. 代码优化说明

  • 贪心排序一次完成,无额外数据结构
  • 仅两次遍历,无嵌套循环
  • 空间 O(1) 额外空间,时间最优

5. 复杂度分析

  • 时间复杂度:O(n log n)
    排序主导复杂度
  • 空间复杂度:O(1)
    仅使用常数变量

6. 总结

  • 贪心核心:按 (b - a) 降序排列
  • 先算总消耗,再模拟补足不足
  • 是任务门槛类贪心的经典模板题
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/12 18:23:59

终极窗口强制调整工具:轻松突破Windows窗口尺寸限制

终极窗口强制调整工具&#xff1a;轻松突破Windows窗口尺寸限制 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为那些无法拖拽大小的应用程序窗口而烦恼吗&#xff1f;Window…

作者头像 李华
网站建设 2026/5/12 18:21:24

Modbus RTU 与 Modbus TCP 深入指南-结束语

结束语本指南涵盖了Modbus RTU和Modbus TCP的物理层、数据链路层、报文格式、CRC算法、通信模型、功能码详解、性能优化、安全加固、故障排查、工程实践、过渡策略及现代替代方案。核心要点回顾&#xff1a;RTU&#xff1a;串口&#xff0c;远距离&#xff0c;简单可靠&#xf…

作者头像 李华
网站建设 2026/5/12 18:13:29

XUnity.AutoTranslator终极指南:5分钟破解Unity游戏语言障碍

XUnity.AutoTranslator终极指南&#xff1a;5分钟破解Unity游戏语言障碍 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 当你打开心爱的日系RPG游戏&#xff0c;却因为语言不通而无法理解剧情时&#xff…

作者头像 李华