1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-10 18:48:13 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/problem (Chinese)/给植物浇水 [watering-plants].html
2022-03-29 12:43:11 +08:00

63 lines
2.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p>你打算用一个水罐给花园里的 <code>n</code> 株植物浇水。植物排成一行,从左到右进行标记,编号从 <code>0</code><code>n - 1</code> 。其中,第 <code>i</code> 株植物的位置是 <code>x = i</code><code>x = -1</code>&nbsp;处有一条河,你可以在那里重新灌满你的水罐。</p>
<p>每一株植物都需要浇特定量的水。你将会按下面描述的方式完成浇水:</p>
<ul>
<li>按从左到右的顺序给植物浇水。</li>
<li>在给当前植物浇完水之后,如果你没有足够的水 <strong>完全</strong> 浇灌下一株植物,那么你就需要返回河边重新装满水罐。</li>
<li><strong>不能</strong> 提前重新灌满水罐。</li>
</ul>
<p>最初,你在河边(也就是,<code>x = -1</code>),在 x 轴上每移动 <strong>一个单位</strong>&nbsp;都需要 <strong>一步</strong></p>
<p>给你一个下标从 <strong>0</strong> 开始的整数数组 <code>plants</code> ,数组由 <code>n</code> 个整数组成。其中,<code>plants[i]</code> 为第 <code>i</code> 株植物需要的水量。另有一个整数 <code>capacity</code> 表示水罐的容量,返回浇灌所有植物需要的 <strong>步数</strong></p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre>
<strong>输入:</strong>plants = [2,2,3,3], capacity = 5
<strong>输出:</strong>14
<strong>解释:</strong>从河边开始,此时水罐是装满的:
- 走到植物 0 (1 步) ,浇水。水罐中还有 3 单位的水。
- 走到植物 1 (1 步) ,浇水。水罐中还有 1 单位的水。
- 由于不能完全浇灌植物 2 ,回到河边取水 (2 步)。
- 走到植物 2 (3 步) ,浇水。水罐中还有 2 单位的水。
- 由于不能完全浇灌植物 3 ,回到河边取水 (3 步)。
- 走到植物 3 (4 步) ,浇水。
需要的步数是 = 1 + 1 + 2 + 3 + 3 + 4 = 14 。
</pre>
<p><strong>示例 2</strong></p>
<pre>
<strong>输入:</strong>plants = [1,1,1,4,2,3], capacity = 4
<strong>输出:</strong>30
<strong>解释:</strong>从河边开始,此时水罐是装满的:
- 走到植物 012 (3 步) ,浇水。回到河边取水 (3 步)。
- 走到植物 3 (4 步) ,浇水。回到河边取水 (4 步)。
- 走到植物 4 (5 步) ,浇水。回到河边取水 (5 步)。
- 走到植物 5 (6 步) ,浇水。
需要的步数是 = 3 + 3 + 4 + 4 + 5 + 5 + 6 = 30 。</pre>
<p><strong>示例 3</strong></p>
<pre>
<strong>输入:</strong>plants = [7,7,7,7,7,7,7], capacity = 8
<strong>输出:</strong>49
<strong>解释:</strong>每次浇水都需要重新灌满水罐。
需要的步数是 = 1 + 1 + 2 + 2 + 3 + 3 + 4 + 4 + 5 + 5 + 6 + 6 + 7 = 49 。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>n == plants.length</code></li>
<li><code>1 &lt;= n &lt;= 1000</code></li>
<li><code>1 &lt;= plants[i] &lt;= 10<sup>6</sup></code></li>
<li><code>max(plants[i]) &lt;= capacity &lt;= 10<sup>9</sup></code></li>
</ul>