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)/填充书架 [filling-bookcase-shelves].html

47 lines
2.0 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>books</code> ,其中&nbsp;<code>books[i] = [thickness<sub>i</sub>, height<sub>i</sub>]</code>&nbsp;表示第 <code>i</code> 本书的厚度和高度。你也会得到一个整数 <code>shelfWidth</code></p>
<p><strong>按顺序</strong>&nbsp;将这些书摆放到总宽度为 <code>shelfWidth</code> 的书架上。</p>
<p>先选几本书放在书架上(它们的厚度之和小于等于书架的宽度 <code>shelfWidth</code> ),然后再建一层书架。重复这个过程,直到把所有的书都放在书架上。</p>
<p>需要注意的是,在上述过程的每个步骤中,<strong>摆放书的顺序与给定图书数组 </strong><code>books</code><strong> 顺序相同</strong></p>
<ul>
<li>例如,如果这里有 5 本书,那么可能的一种摆放情况是:第一和第二本书放在第一层书架上,第三本书放在第二层书架上,第四和第五本书放在最后一层书架上。</li>
</ul>
<p>每一层所摆放的书的最大高度就是这一层书架的层高,书架整体的高度为各层高之和。</p>
<p>以这种方式布置书架,返回书架整体可能的最小高度。</p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<p><img src="https://assets.leetcode.com/uploads/2019/06/24/shelves.png" style="width: 337px; height: 500px;" /></p>
<pre>
<strong>输入:</strong>books = [[1,1],[2,3],[2,3],[1,1],[1,1],[1,1],[1,2]], shelfWidth = 4
<strong>输出:</strong>6
<strong>解释:</strong>
3 层书架的高度和为 1 + 3 + 2 = 6 。
第 2 本书不必放在第一层书架上。
</pre>
<p><strong class="example">示例 2:</strong></p>
<pre>
<strong>输入:</strong> books = [[1,3],[2,4],[3,2]], shelfWidth = 6
<strong>输出:</strong> 4
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= books.length &lt;= 1000</code></li>
<li><code>1 &lt;= thickness<sub>i</sub>&nbsp;&lt;= shelfWidth &lt;= 1000</code></li>
<li><code>1 &lt;= height<sub>i</sub>&nbsp;&lt;= 1000</code></li>
</ul>