mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-11 02:58:13 +08:00
49 lines
2.0 KiB
HTML
49 lines
2.0 KiB
HTML
|
<p>给你一个下标从 <strong>0</strong> 开始长度为 <code>n</code> 的数组 <code>nums</code> 。</p>
|
|||
|
|
|||
|
<p>每一秒,你可以对数组执行以下操作:</p>
|
|||
|
|
|||
|
<ul>
|
|||
|
<li>对于范围在 <code>[0, n - 1]</code> 内的每一个下标 <code>i</code> ,将 <code>nums[i]</code> 替换成 <code>nums[i]</code> ,<code>nums[(i - 1 + n) % n]</code> 或者 <code>nums[(i + 1) % n]</code> 三者之一。</li>
|
|||
|
</ul>
|
|||
|
|
|||
|
<p><strong>注意</strong>,所有元素会被同时替换。</p>
|
|||
|
|
|||
|
<p>请你返回将数组 <code>nums</code> 中所有元素变成相等元素所需要的 <strong>最少</strong> 秒数。</p>
|
|||
|
|
|||
|
<p> </p>
|
|||
|
|
|||
|
<p><strong>示例 1:</strong></p>
|
|||
|
|
|||
|
<pre><b>输入:</b>nums = [1,2,1,2]
|
|||
|
<b>输出:</b>1
|
|||
|
<b>解释:</b>我们可以在 1 秒内将数组变成相等元素:
|
|||
|
- 第 1 秒,将每个位置的元素分别变为 [nums[3],nums[1],nums[3],nums[3]] 。变化后,nums = [2,2,2,2] 。
|
|||
|
1 秒是将数组变成相等元素所需要的最少秒数。
|
|||
|
</pre>
|
|||
|
|
|||
|
<p><strong>示例 2:</strong></p>
|
|||
|
|
|||
|
<pre><b>输入:</b>nums = [2,1,3,3,2]
|
|||
|
<b>输出:</b>2
|
|||
|
<b>解释:</b>我们可以在 2 秒内将数组变成相等元素:
|
|||
|
- 第 1 秒,将每个位置的元素分别变为 [nums[0],nums[2],nums[2],nums[2],nums[3]] 。变化后,nums = [2,3,3,3,3] 。
|
|||
|
- 第 2 秒,将每个位置的元素分别变为 [nums[1],nums[1],nums[2],nums[3],nums[4]] 。变化后,nums = [3,3,3,3,3] 。
|
|||
|
2 秒是将数组变成相等元素所需要的最少秒数。
|
|||
|
</pre>
|
|||
|
|
|||
|
<p><strong>示例 3:</strong></p>
|
|||
|
|
|||
|
<pre><b>输入:</b>nums = [5,5,5,5]
|
|||
|
<b>输出:</b>0
|
|||
|
<b>解释:</b>不需要执行任何操作,因为一开始数组中的元素已经全部相等。
|
|||
|
</pre>
|
|||
|
|
|||
|
<p> </p>
|
|||
|
|
|||
|
<p><strong>提示:</strong></p>
|
|||
|
|
|||
|
<ul>
|
|||
|
<li><code>1 <= n == nums.length <= 10<sup>5</sup></code></li>
|
|||
|
<li><code>1 <= nums[i] <= 10<sup>9</sup></code></li>
|
|||
|
</ul>
|