2391. 收集垃圾的最少总时间
思路:模拟,正常进行两层for循环,在第二层for循环记录垃圾种类对应的个数,然后更新对应车应该到达的位置即可,最后把路上花费的时间加上sum+t1+t2+t3。
class Solution {
public:
int garbageCollection(vector<string>& garbage, vector<int>& travel) {
int sum=0;
int t1=0,t2=0,t3=0,t_sum=0;
for(int i=0;i<garbage.size();i++){
int a=0,b=0,c=0;
for(int j=0;j<garbage[i].size();j++){
if(garbage[i][j]=='M') a++;
else if(garbage[i][j]=='P') b++;
else c++;
}
if(a) sum+=a,t1=t_sum;
if(b) sum+=b,t2=t_sum;
if(c) sum+=c,t3=t_sum;
if(i!=garbage.size()-1) t_sum+=travel[i];
}
return sum+t1+t2+t3;
}
};