algorithm - 使数组元素等于或 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
我知道存在类似问题的事实,但这个问题更加笼统,目前该问题已被锁定。
解决方案
推荐阅读
- powerbi - Power BI Premium - 你不能从那里到达这里
- docker - 无法启动 zalenium 仪表板
- python - join.str() 给出 Nan 值
- microsoft-graph-api - 将消息发布到聊天 API
- javascript - 在 setInterval 中调用 clearInterval() 不会停止 setinterval
- azure - 饼图 VM 内存使用情况 Azure
- html - 默认“行高”的效果在所有浏览器中都一样吗?
- python - 在 python 2.7 中将命令行参数转换为字典时出错
- node.js - 打开 api 错误:请求应该具有必需的属性 '.headers' - docker
- ios - 在 Singleton 中正确使用 OCMock