中等
给你三个整数 n、index 和 value。
如果长度为 n 的整数数组 nums 满足以下条件,则称其为 GCD 连通数组:
- 对于
0 <= i <= n - 1,有nums[i] > 0。 - 对于
0 <= i <= n - 2,有nums[i] < nums[i + 1]。 nums[index] = value。- 对于
0 <= i <= n - 2,有gcd(nums[i], nums[i + 1]) > 1。
在所有 GCD 连通数组 nums 中,返回最大元素 nums[n - 1] 可能的最小值。如果不存在这样的数组,返回 -1。
gcd(a, b) 表示 a 和 b 的最大公约数。
示例 1:
输入: n = 4, index = 2, value = 8
输出: 10
解释:
- 由于
nums[2] = 8,GCD 连通数组的形式为:nums = [?, ?, 8, ?]。 - 由于
nums[3] > 8且gcd(8, 9) = 1,所有合法的 GCD 连通数组都必须满足nums[3] >= 10。 - 一个满足所有条件的最优数组是
[2, 4, 8, 10]。 - 因此,
nums[3]可能的最小值为 10。
示例 2:
输入: n = 2, index = 1, value = 3
输出: -1
解释:
- 由于
nums[1] = 3,GCD 连通数组的形式为:nums = [?, 3]。 - 由于需要满足
0 < nums[0] < nums[1] = 3,只有两个可能的数组:[1, 3]和[2, 3]。它们都不满足gcd(nums[0], nums[1]) > 1。 - 因此,不存在合法的 GCD 连通数组,答案为 -1。
示例 3:
输入: n = 2, index = 0, value = 3
输出: 6
解释:
- 由于
nums[0] = 3,GCD 连通数组的形式为:nums = [3, ?]。 - 由于
nums[1] > 3且gcd(3, 4) = gcd(3, 5) = 1,所有合法的 GCD 连通数组都必须满足nums[1] >= 6。 - 一个最优数组是
[3, 6]。 - 因此,
nums[1]可能的最小值为 6。
提示:
2 <= n <= 1091 <= value <= 1090 <= index <= n - 1