mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-11 02:58:13 +08:00
58 lines
3.2 KiB
HTML
58 lines
3.2 KiB
HTML
<p>You are given a <strong>0-indexed</strong> array of strings <code>garbage</code> where <code>garbage[i]</code> represents the assortment of garbage at the <code>i<sup>th</sup></code> house. <code>garbage[i]</code> consists only of the characters <code>'M'</code>, <code>'P'</code> and <code>'G'</code> representing one unit of metal, paper and glass garbage respectively. Picking up <strong>one</strong> unit of any type of garbage takes <code>1</code> minute.</p>
|
|
|
|
<p>You are also given a <strong>0-indexed</strong> integer array <code>travel</code> where <code>travel[i]</code> is the number of minutes needed to go from house <code>i</code> to house <code>i + 1</code>.</p>
|
|
|
|
<p>There are three garbage trucks in the city, each responsible for picking up one type of garbage. Each garbage truck starts at house <code>0</code> and must visit each house <strong>in order</strong>; however, they do <strong>not</strong> need to visit every house.</p>
|
|
|
|
<p>Only <strong>one</strong> garbage truck may be used at any given moment. While one truck is driving or picking up garbage, the other two trucks <strong>cannot</strong> do anything.</p>
|
|
|
|
<p>Return<em> the <strong>minimum</strong> number of minutes needed to pick up all the garbage.</em></p>
|
|
|
|
<p> </p>
|
|
<p><strong>Example 1:</strong></p>
|
|
|
|
<pre>
|
|
<strong>Input:</strong> garbage = ["G","P","GP","GG"], travel = [2,4,3]
|
|
<strong>Output:</strong> 21
|
|
<strong>Explanation:</strong>
|
|
The paper garbage truck:
|
|
1. Travels from house 0 to house 1
|
|
2. Collects the paper garbage at house 1
|
|
3. Travels from house 1 to house 2
|
|
4. Collects the paper garbage at house 2
|
|
Altogether, it takes 8 minutes to pick up all the paper garbage.
|
|
The glass garbage truck:
|
|
1. Collects the glass garbage at house 0
|
|
2. Travels from house 0 to house 1
|
|
3. Travels from house 1 to house 2
|
|
4. Collects the glass garbage at house 2
|
|
5. Travels from house 2 to house 3
|
|
6. Collects the glass garbage at house 3
|
|
Altogether, it takes 13 minutes to pick up all the glass garbage.
|
|
Since there is no metal garbage, we do not need to consider the metal garbage truck.
|
|
Therefore, it takes a total of 8 + 13 = 21 minutes to collect all the garbage.
|
|
</pre>
|
|
|
|
<p><strong>Example 2:</strong></p>
|
|
|
|
<pre>
|
|
<strong>Input:</strong> garbage = ["MMM","PGM","GP"], travel = [3,10]
|
|
<strong>Output:</strong> 37
|
|
<strong>Explanation:</strong>
|
|
The metal garbage truck takes 7 minutes to pick up all the metal garbage.
|
|
The paper garbage truck takes 15 minutes to pick up all the paper garbage.
|
|
The glass garbage truck takes 15 minutes to pick up all the glass garbage.
|
|
It takes a total of 7 + 15 + 15 = 37 minutes to collect all the garbage.
|
|
</pre>
|
|
|
|
<p> </p>
|
|
<p><strong>Constraints:</strong></p>
|
|
|
|
<ul>
|
|
<li><code>2 <= garbage.length <= 10<sup>5</sup></code></li>
|
|
<li><code>garbage[i]</code> consists of only the letters <code>'M'</code>, <code>'P'</code>, and <code>'G'</code>.</li>
|
|
<li><code>1 <= garbage[i].length <= 10</code></li>
|
|
<li><code>travel.length == garbage.length - 1</code></li>
|
|
<li><code>1 <= travel[i] <= 100</code></li>
|
|
</ul>
|