使数组元素等于或小于0的最小调整数

时间:2019-02-03 14:49:39

标签: algorithm adhoc

假设我们有一个固定长度 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,但这个问题更加笼统,目前该问题已被锁定。

0 个答案:

没有答案