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是garbage[i]的长度之和

空间复杂度:

O(1)

相关推荐
TracyCoder1231 分钟前
LeetCode Hot100(62/100)——62. 不同路径
算法·leetcode·职场和发展
jing-ya3 分钟前
day 50 图论part2
java·算法·深度优先·图论
仰泳的熊猫6 分钟前
题目2268:蓝桥杯2016年第七届真题-密码脱落
数据结构·c++·算法·蓝桥杯
我能坚持多久15 分钟前
【初阶数据结构09】——对堆用法的深入刨析
数据结构·算法
kaikaile199518 分钟前
基于PCNN和NSCT的图像融合MATLAB实现
开发语言·图像处理·算法·matlab
Zik----18 分钟前
cs研究生面试机试题(持续更新)
算法
12315668028 分钟前
PAT 1017 A除以B
c语言·数据结构·算法·pat考试
努力学算法的蒟蒻34 分钟前
day112(3.14)——leetcode面试经典150
面试·职场和发展
芯片-嵌入式36 分钟前
具身智能(2):OpenExplorer下的模型量化
人工智能·深度学习·算法
Yusei_052337 分钟前
C++14入门
c++·算法