使用 Python 查找使数组相等的最小操作的程序
假设我们有一个值 n,考虑一个包含 n 个元素的数组 nums,其中所有 i 的 arr[i] = (2*i)+1。现在在一个操作中,我们可以选择两个索引 x 和 y,其中 0 <= x, y < n 并从 nums[x] 中减去 1,然后将 1 添加到 nums[y]。我们必须使数组的所有元素都相同。因此,如果我们有 n,我们必须找到使 nums 的所有元素相同所需的最少操作次数。
因此,如果输入像 n = 4,那么输出将是 4,因为对于 n 数组是 [1,3,5,7],现在在第一次操作之后我们可以使数组像 [2,3,5,6 ],在第二次操作之后我们可以制作[3,3,5,5],然后在第三次[4,3,4,5]之后,最后是[4,4,4,4]。所以现在所有人都是平等的。
为了解决这个问题,我们将按照以下步骤操作 -
答案:= 0
如果 n 等于 1,则
返回答案
q:= (n/2) -1 的商
j:= 1
当 q>=0 时,做
ans:= ans + (nj)
q := q - 1
j := j + 2
返回答案
让我们看看以下实现以获得更好的理解 -
示例
def solve(n):ans=0
if n==1:
return ans
q=(n//2)-1
j=1
while q>=0:
ans=ans+(n-j)
q-=1
j+=2
return ans
n = 4
print(solve(n))
输入
4输出结果
4
以上是 使用 Python 查找使数组相等的最小操作的程序 的全部内容, 来源链接: utcz.com/z/359733.html