C++ 如何找到使数组包含所有相同元素的最小步骤数?
我有一个由N个项目组成的数组,例如:C++ 如何找到使数组包含所有相同元素的最小步骤数?,c++,algorithm,C++,Algorithm,我有一个由N个项目组成的数组,例如: 4 2 1 1 我希望在最小操作中使所有数字相同,并且我只能执行一种类型的操作: 如果我给任何一个数加1,那么我必须从另一个数中减去1 在我们的示例中:将1添加到第四个元素,并从第一个元素中减去1 3 2 1 2 第三个元素加1,第一个元素减1 2 2 2 2 array element can be 0 but not a negative number 我在C++中编码。 这里有一些提示: 每个操作都会将元素的总和减少1并增加1,因此总和不会改
4 2 1 1
我希望在最小操作中使所有数字相同,并且我只能执行一种类型的操作:
如果我给任何一个数加1,那么我必须从另一个数中减去1
在我们的示例中:将1添加到第四个元素,并从第一个元素中减去1
3 2 1 2
第三个元素加1,第一个元素减1
2 2 2 2
array element can be 0 but not a negative number
我在C++中编码。
这里有一些提示:average=sum/n
-这意味着平均值也不会改变使用这些提示,您就可以找到一个算法来实现这一点。我认为代码可以解决这个问题。(而且不要那么挖苦人:你试了什么?@Aman,尼尔·柯克只是把我的答案弄糊涂了,所以我没有得到投票。你可以用我的答案。我想要一个通用算法。不仅仅是为了这个array@aman,您可以使用*0、我的或下面的平均值。这就是全部。
modf()
在这里也很好,但您需要使用2个操作。我试图给您投票,但最近我投了太多废话,我现在已经达到了极限:(