mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
39 lines
1.6 KiB
HTML
39 lines
1.6 KiB
HTML
<p>给你一个下标从 <strong>0</strong> 开始的 <strong>正</strong> 整数数组 <code>nums</code> 。你可以对数组执行以下操作 <strong>任意</strong> 次:</p>
|
||
|
||
<ul>
|
||
<li>选择一个满足 <code>0 <= i < n - 1</code> 的下标 <code>i</code> ,将 <code>nums[i]</code> 或者 <code>nums[i+1]</code> 两者之一替换成它们的最大公约数。</li>
|
||
</ul>
|
||
|
||
<p>请你返回使数组 <code>nums</code> 中所有元素都等于 <code>1</code> 的 <strong>最少</strong> 操作次数。如果无法让数组全部变成 <code>1</code> ,请你返回 <code>-1</code> 。</p>
|
||
|
||
<p>两个正整数的最大公约数指的是能整除这两个数的最大正整数。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>示例 1:</strong></p>
|
||
|
||
<pre><b>输入:</b>nums = [2,6,3,4]
|
||
<b>输出:</b>4
|
||
<b>解释:</b>我们可以执行以下操作:
|
||
- 选择下标 i = 2 ,将 nums[2] 替换为 gcd(3,4) = 1 ,得到 nums = [2,6,1,4] 。
|
||
- 选择下标 i = 1 ,将 nums[1] 替换为 gcd(6,1) = 1 ,得到 nums = [2,1,1,4] 。
|
||
- 选择下标 i = 0 ,将 nums[0] 替换为 gcd(2,1) = 1 ,得到 nums = [1,1,1,4] 。
|
||
- 选择下标 i = 2 ,将 nums[3] 替换为 gcd(1,4) = 1 ,得到 nums = [1,1,1,1] 。
|
||
</pre>
|
||
|
||
<p><strong>示例 2:</strong></p>
|
||
|
||
<pre><b>输入:</b>nums = [2,10,6,14]
|
||
<b>输出:</b>-1
|
||
<b>解释:</b>无法将所有元素都变成 1 。
|
||
</pre>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>2 <= nums.length <= 50</code></li>
|
||
<li><code>1 <= nums[i] <= 10<sup>6</sup></code></li>
|
||
</ul>
|