给你一个正整数数组 nums
和一个整数 k
。
你最多可以执行 k
次操作。在每次操作中,你可以选择数组中的一个元素并将其值 翻倍 。每个元素 最多 只能翻倍一次。
连续 子数组 的 分数 定义为其所有元素的最大公约数 (GCD) 与子数组长度的 乘积 。
你的任务是返回修改后数组中选择一个连续子数组可以获得的最大 分数 。
注意:
示例 1:
输入: nums = [2,4], k = 1
输出: 8
解释:
nums[0]
翻倍到 4。修改后的数组变为 [4, 4]
。[4, 4]
的 GCD 是 4,长度是 2。2 × 4 = 8
。示例 2:
输入: nums = [3,5,7], k = 2
输出: 14
解释:
nums[2]
翻倍到 14。修改后的数组变为 [3, 5, 14]
。[14]
的 GCD 是 14,长度是 1。1 × 14 = 14
。示例 3:
输入: nums = [5,5,5], k = 1
输出: 15
解释:
[5, 5, 5]
的 GCD 是 5,长度是 3。3 × 5 = 15
。
提示:
1 <= n == nums.length <= 1500
1 <= nums[i] <= 109
1 <= k <= n