首页 > 解决方案 > 使数组元素等于或 0 的最小调整次数

问题描述

假设我们有一个包含非负整数的固定长度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

我知道存在类似问题的事实,但这个问题更加笼统,目前该问题已被锁定。

标签: algorithmadhoc

解决方案


推荐阅读