java使所有数组元素相等的最小递增操作数
我正在geek for geeks网站上阅读this问题
问题是找到数组中的最小移动次数,使所有元素相等
We are given an array consisting of n elements. At each operation you can select any one element and increase rest of n-1 elements by 1. You have to make all elements equal performing such operation as many times you wish. Find the minimum number of operations needed for this.
Examples:
Input : arr[] = {1, 2, 3}
Output : Minimum Operation = 3
Explanation :
operation | increased elements | after increment
1 | 1, 2 | 2, 3, 3
2 | 1, 2 | 3, 4, 3
3 | 1, 3 | 4, 4, 4
Input : arr[] = {4, 3, 4}
Output : Minimum Operation = 2
Explanation :
operation | increased elements | after increment
1 | 1, 2 | 5, 4, 4
2 | 2, 3 | 5, 5, 5
链接解释了我们必须使用公式minOperation = sum - (n * small)
来得到答案,其中sum是数组中所有元素的总和,n是数组中的元素数,small是数组中最小的元素
你能帮我理解这个公式表示什么吗?它是如何解决这个问题的
# 1 楼答案
我已经用二进制搜索解决了这个问题
如果name='main': main()