假设我们有一个固定长度 N 的数组,其中包含非负整数。我们的目标是使阵列以特殊方式均匀分布。经过我们的运算后,数组中的每个非零元素都应该相等。我们唯一可以执行的操作是:从一个元素中减去1,然后将1加到任何其他元素上。我很想知道所需的此类操作的最少数量。
正式
final_arr[i] = 0 or k
for all i in [1,N]
k maybe any positive integer
示例
1.
arr = [5,2,3,0,0,0]
operation 1 : (2-1),(3+1) arr = [5,1,4,0,0,0]
operation 2 : (1-1),(4+1) final_arr = [5,0,5,0,0,0]
so minimum number of operations is 2 (here k = 5)
2.
arr = [5,2,1,0,0,0]
operation 1 : (2-1),(5+1) arr = [6,1,1,0,0,0]
operation 2 : (1-1),(6+1) arr = [7,0,1,0,0,0]
operation 3 : (1-1),(7+1) final_arr = [8,0,0,0,0,0]
so minimum number of operations is 3 (here k = 8)
注意:N <= 20和arr [i] <= 10 ^ 8
我知道存在类似的question,但这个问题更加笼统,目前该问题已被锁定。