mirror of
				https://gitee.com/coder-xiaomo/leetcode-problemset
				synced 2025-11-04 11:43:12 +08:00 
			
		
		
		
	国外版
This commit is contained in:
		
							
								
								
									
										39
									
								
								算法题(国外版)/minimum-cost-to-cut-a-stick.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								算法题(国外版)/minimum-cost-to-cut-a-stick.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
<p>Given a wooden stick of length <code>n</code> units. The stick is labelled from <code>0</code> to <code>n</code>. For example, a stick of length <strong>6</strong> is labelled as follows:</p>
 | 
			
		||||
<img alt="" src="https://assets.leetcode.com/uploads/2020/07/21/statement.jpg" style="width: 521px; height: 111px;" />
 | 
			
		||||
<p>Given an integer array <code>cuts</code> where <code>cuts[i]</code> denotes a position you should perform a cut at.</p>
 | 
			
		||||
 | 
			
		||||
<p>You should perform the cuts in order, you can change the order of the cuts as you wish.</p>
 | 
			
		||||
 | 
			
		||||
<p>The cost of one cut is the length of the stick to be cut, the total cost is the sum of costs of all cuts. When you cut a stick, it will be split into two smaller sticks (i.e. the sum of their lengths is the length of the stick before the cut). Please refer to the first example for a better explanation.</p>
 | 
			
		||||
 | 
			
		||||
<p>Return <em>the minimum total cost</em> of the cuts.</p>
 | 
			
		||||
 | 
			
		||||
<p> </p>
 | 
			
		||||
<p><strong>Example 1:</strong></p>
 | 
			
		||||
<img alt="" src="https://assets.leetcode.com/uploads/2020/07/23/e1.jpg" style="width: 350px; height: 284px;" />
 | 
			
		||||
<pre>
 | 
			
		||||
<strong>Input:</strong> n = 7, cuts = [1,3,4,5]
 | 
			
		||||
<strong>Output:</strong> 16
 | 
			
		||||
<strong>Explanation:</strong> Using cuts order = [1, 3, 4, 5] as in the input leads to the following scenario:
 | 
			
		||||
<img alt="" src="https://assets.leetcode.com/uploads/2020/07/21/e11.jpg" style="width: 350px; height: 284px;" />
 | 
			
		||||
The first cut is done to a rod of length 7 so the cost is 7. The second cut is done to a rod of length 6 (i.e. the second part of the first cut), the third is done to a rod of length 4 and the last cut is to a rod of length 3. The total cost is 7 + 6 + 4 + 3 = 20.
 | 
			
		||||
Rearranging the cuts to be [3, 5, 1, 4] for example will lead to a scenario with total cost = 16 (as shown in the example photo 7 + 4 + 3 + 2 = 16).</pre>
 | 
			
		||||
 | 
			
		||||
<p><strong>Example 2:</strong></p>
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
<strong>Input:</strong> n = 9, cuts = [5,6,1,4,2]
 | 
			
		||||
<strong>Output:</strong> 22
 | 
			
		||||
<strong>Explanation:</strong> If you try the given cuts ordering the cost will be 25.
 | 
			
		||||
There are much ordering with total cost <= 25, for example, the order [4, 6, 5, 2, 1] has total cost = 22 which is the minimum possible.
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p> </p>
 | 
			
		||||
<p><strong>Constraints:</strong></p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
	<li><code>2 <= n <= 10<sup>6</sup></code></li>
 | 
			
		||||
	<li><code>1 <= cuts.length <= min(n - 1, 100)</code></li>
 | 
			
		||||
	<li><code>1 <= cuts[i] <= n - 1</code></li>
 | 
			
		||||
	<li>All the integers in <code>cuts</code> array are <strong>distinct</strong>.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
		Reference in New Issue
	
	Block a user