LeetCode 每日一题 ---- 【2391.收集垃圾的最少总时间】

LeetCode 每日一题 ---- 【2391.收集垃圾的最少总时间】

2391.收集垃圾的最少总时间

方法:模拟(多次遍历)

需要注意的点是,处理一个单位的一个垃圾需要1分钟,比如"MMM",处理垃圾需要3分钟,这是一个坑点,需要注意。

然后可以提前预处理假设全部单位需要处理全部垃圾,然后遍历的时候减去不需要处理的就可以了。

java 复制代码
class Solution {
    public int garbageCollection(String[] garbage, int[] travel) {
        int ans = 0;
        for (String g : garbage) {
            ans += g.length();
        }
        for (int t : travel) {
            ans += t * 3;        
        }
        for (char c : new char[]{'M', 'P', 'G'}) {
            for (int i = garbage.length - 1; i > 0 && garbage[i].indexOf(c) < 0; i -- ) {
                ans -= travel[i - 1];
            }
        }
        return ans;
    }
}

时间复杂度:

O(n + m)

n是garbage的长度,m是garbagei的长度之和

空间复杂度:

O(1)

相关推荐
羊羊小栈13 小时前
基于「YOLO目标检测 + 多模态AI分析」的公共场所暴力安全智能检测分析预警系统
人工智能·算法·面试·毕业设计·大作业
土星云SaturnCloud14 小时前
ResNet-50 图像分类算法在边缘微服务器上的部署与性能评测
服务器·人工智能·算法·边缘计算·resnet-50
Niuguangshuo14 小时前
文本-音频时间戳对齐:5 个开源工具实测
算法·开源·音视频
Niuguangshuo14 小时前
论文解读:RNN-Transducer,端到端流式 ASR 的骨架
算法·语音识别
GreenTea14 小时前
🔥别再用压缩了,Codex、NVIDIA、DeepSeek、Uber 给出 Agent 上下文管理的新答案
前端·后端·算法
All for pursuit.14 小时前
【矩阵-2】240.搜索二维矩阵 II
数据结构·c++·算法·leetcode
6Hzlia14 小时前
【Classic 150 刷题计划】 LeetCode 209. 长度最小的子数组 | C++ 滑动窗口(毛毛虫算法)经典模板
c++·算法·leetcode
天真小巫14 小时前
2026.9.14总结
职场和发展
6Hzlia15 小时前
【Classic 150 刷题计划】 LeetCode 28. 找出字符串中第一个匹配项的下标 | C++ 滑动窗口与子串比对
c++·算法·leetcode
GreenTea1 天前
vLLM 与 SGLang KV Cache 底层实现机制深度调研报告
前端·后端·算法