使用 Python 查找使数组相等的最小操作的程序
假设我们有一个值n,考虑一个包含n个元素的数组nums,其中所有i的arr[i]=(2*i)+1。现在在一个操作中,我们可以选择两个索引x和y,其中0<=x,y 因此,如果输入像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