首页 > 试题广场 >

砌墙

[编程题]砌墙
  • 热度指数:571 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
NowCoder喜欢玩他的方盒子。他把那些盒子叠成不同高度的柱子,他对姐姐说:“看,我砌成了一堵墙!” “你只有把所有的柱子调整成相同的高度,那样才算是一堵真正的墙。”她回应道。经过短暂的思考,NowCoder觉得她是对的。为了使栈能一样高,他只好一个一个地搬盒子。但是他很懒,想搬最小的次数来达到目的。你能帮助他吗?

输入描述:
输入包含多组数据,每组数据第一行包含一个正整数n(1≤n≤50),代表柱子的个数。

第二行包含n个正整数h,表示每根柱子的高度。


输出描述:
对应每组数据,输出一个整数,表示需要搬的最小次数。
示例1

输入

6
5 2 4 1 7 5

输出

5

python 解法

思路:把数组里面所有小于平均数的元素,用平均数减去它,就是需要搬的次数,把这些结果加起来即可

核心代码只需要三行


while True:
    try:
        a, b = input(), list(map(int, input().split()))
        height = sum(b) // len(b)
        print (sum(map(lambda c: height-c if c < height else 0, b)))
    except:
        break
发表于 2017-11-16 18:42:06 回复(0)

问题信息

难度:
1条回答 7214浏览

热门推荐

通过挑战的用户

查看代码