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)/切棍子的最小成本 [minimum-cost-to-cut-a-stick].html
2022-03-29 12:43:11 +08:00

45 lines
2.4 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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</code> 标记了若干位置。例如,长度为 <strong>6</strong> 的棍子可以标记如下:</p>
<p><img alt="" src="https://assets.leetcode-cn.com/aliyun-lc-upload/uploads/2020/08/09/statement.jpg" style="height: 111px; width: 521px;" /></p>
<p>给你一个整数数组 <code>cuts</code> ,其中 <code>cuts[i]</code> 表示你需要将棍子切开的位置。</p>
<p>你可以按顺序完成切割,也可以根据需要更改切割的顺序。</p>
<p>每次切割的成本都是当前要切割的棍子的长度,切棍子的总成本是历次切割成本的总和。对棍子进行切割将会把一根木棍分成两根较小的木棍(这两根木棍的长度和就是切割前木棍的长度)。请参阅第一个示例以获得更直观的解释。</p>
<p>返回切棍子的 <strong>最小总成本</strong></p>
<p> </p>
<p><strong>示例 1</strong></p>
<p><img alt="" src="https://assets.leetcode-cn.com/aliyun-lc-upload/uploads/2020/08/09/e1.jpg" style="height: 284px; width: 350px;" /></p>
<pre>
<strong>输入:</strong>n = 7, cuts = [1,3,4,5]
<strong>输出:</strong>16
<strong>解释:</strong>按 [1, 3, 4, 5] 的顺序切割的情况如下所示:
<img alt="" src="https://assets.leetcode-cn.com/aliyun-lc-upload/uploads/2020/08/09/e11.jpg" style="height: 284px; width: 350px;" />
第一次切割长度为 7 的棍子,成本为 7 。第二次切割长度为 6 的棍子(即第一次切割得到的第二根棍子),第三次切割为长度 4 的棍子,最后切割长度为 3 的棍子。总成本为 7 + 6 + 4 + 3 = 20 。
而将切割顺序重新排列为 [3, 5, 1, 4] 后,总成本 = 16如示例图中 7 + 4 + 3 + 2 = 16
</pre>
<p><strong>示例 2</strong></p>
<pre>
<strong>输入:</strong>n = 9, cuts = [5,6,1,4,2]
<strong>输出:</strong>22
<strong>解释:</strong>如果按给定的顺序切割,则总成本为 25 。总成本 <= 25 的切割顺序很多,例如,[4, 6, 5, 2, 1] 的总成本 = 22是所有可能方案中成本最小的。</pre>
<p> </p>
<p><strong>提示:</strong></p>
<ul>
<li><code>2 <= n <= 10^6</code></li>
<li><code>1 <= cuts.length <= min(n - 1, 100)</code></li>
<li><code>1 <= cuts[i] <= n - 1</code></li>
<li><code>cuts</code> 数组中的所有整数都 <strong>互不相同</strong></li>
</ul>