mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-09-12 19:01:47 +08:00
68 lines
2.9 KiB
HTML
68 lines
2.9 KiB
HTML
<p>给你一个大小为 <code>n</code> 的 <strong>非负</strong> 整数数组 <code>nums</code> 。你的任务是对该数组执行若干次(可能为 0 次)操作,使得 <strong>所有 </strong>元素都变为 0。</p>
|
||
|
||
<p>在一次操作中,你可以选择一个子数组 <code>[i, j]</code>(其中 <code>0 <= i <= j < n</code>),将该子数组中所有 <strong>最小的非负整数 </strong>的设为 0。</p>
|
||
|
||
<p>返回使整个数组变为 0 所需的<strong>最少</strong>操作次数。</p>
|
||
一个 <strong>子数组 </strong>是数组中的一段连续元素。
|
||
|
||
<p> </p>
|
||
|
||
<p><strong class="example">示例 1:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><strong>输入:</strong> <span class="example-io">nums = [0,2]</span></p>
|
||
|
||
<p><strong>输出:</strong> <span class="example-io">1</span></p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<ul>
|
||
<li>选择子数组 <code>[1,1]</code>(即 <code>[2]</code>),其中最小的非负整数是 2。将所有 2 设为 0,结果为 <code>[0,0]</code>。</li>
|
||
<li>因此,所需的最少操作次数为 1。</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<p><strong class="example">示例 2:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><strong>输入:</strong> <span class="example-io">nums = [3,1,2,1]</span></p>
|
||
|
||
<p><strong>输出:</strong> <span class="example-io">3</span></p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<ul>
|
||
<li>选择子数组 <code>[1,3]</code>(即 <code>[1,2,1]</code>),最小非负整数是 1。将所有 1 设为 0,结果为 <code>[3,0,2,0]</code>。</li>
|
||
<li>选择子数组 <code>[2,2]</code>(即 <code>[2]</code>),将 2 设为 0,结果为 <code>[3,0,0,0]</code>。</li>
|
||
<li>选择子数组 <code>[0,0]</code>(即 <code>[3]</code>),将 3 设为 0,结果为 <code>[0,0,0,0]</code>。</li>
|
||
<li>因此,最少操作次数为 3。</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<p><strong class="example">示例 3:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><strong>输入:</strong> <span class="example-io">nums = [1,2,1,2,1,2]</span></p>
|
||
|
||
<p><strong>输出:</strong> <span class="example-io">4</span></p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<ul>
|
||
<li>选择子数组 <code>[0,5]</code>(即 <code>[1,2,1,2,1,2]</code>),最小非负整数是 1。将所有 1 设为 0,结果为 <code>[0,2,0,2,0,2]</code>。</li>
|
||
<li>选择子数组 <code>[1,1]</code>(即 <code>[2]</code>),将 2 设为 0,结果为 <code>[0,0,0,2,0,2]</code>。</li>
|
||
<li>选择子数组 <code>[3,3]</code>(即 <code>[2]</code>),将 2 设为 0,结果为 <code>[0,0,0,0,0,2]</code>。</li>
|
||
<li>选择子数组 <code>[5,5]</code>(即 <code>[2]</code>),将 2 设为 0,结果为 <code>[0,0,0,0,0,0]</code>。</li>
|
||
<li>因此,最少操作次数为 4。</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>1 <= n == nums.length <= 10<sup>5</sup></code></li>
|
||
<li><code>0 <= nums[i] <= 10<sup>5</sup></code></li>
|
||
</ul>
|