刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

编程实现:

孙悟空的金箍棒可以变高也可以变矮还可以变出多个金箍棒。

这天孙悟空无聊变出了N个长短不一金箍棒,这些金箍棒之间相互吵闹,攀比谁高。当孙悟空每次手指其中一个金箍棒时,这个金箍棒高度不变,其他的金箍棒高度都会增加1。只有当所有金箍棒高度都一样时,他们之间才不相互吵闹,也不会再增加高度,保持静止。分别给定N个金箍棒的初始高度,请你帮助孙悟空计算一下至少手指几次可以让N个金箍棒高度都一样。

例如:有3个金箍棒,初始高度分别为2,3,4。

第一次手指第三个金箍棒,第三个金箍棒高度不变,第一和第二个金箍棒高度分别增加1,变为3,4,4;第二次手指第二个金箍棒,第二个金箍棒高度不变,第一和第三个金箍棒高度分别增加1,变为4,4,5;第三次手指第三个金箍棒,第三个金箍棒高度不变,第一和第二个金箍棒高度分别增加1,变为5,5,5;这时3个金箍棒的高度都为5,手指3次后金箍棒高度一样。所以至少手指3次才能使金箍棒高度都一样。

输入描述:

输入N个非全部相等的正整数(2<N<31),且之间以英文逗号隔开,分别表示N个金箍棒的初始高度

输出描述:

输出一个正整数,表示至少手指几次才能使金箍棒高度都一样


样例输入:

2,3,4

样例输出:

3

使用微信搜索喵呜刷题,轻松应对考试!

答案:

根据题目描述,我们需要计算至少手指几次才能让N个金箍棒的高度都一样。首先,我们需要找到金箍棒中的最大值和最小值。假设最大值为max,最小值为min,数量为N。1. 如果max和min相等,那么不需要进行任何操作,直接输出0。2. 如果max和min不相等,那么需要进行如下操作:- 将所有的金箍棒高度都增加到max。- 然后从高度为max的金箍棒开始,每次减少1,直到所有金箍棒的高度都一样。具体步骤如下:1. 找到金箍棒中的最大值max和最小值min。2. 计算需要增加的高度delta = max - min。3. 将所有金箍棒的高度都增加到max,需要进行N-1次操作。4. 从高度为max的金箍棒开始,每次减少1,需要进行delta次操作。因此,总的操作次数为N-1 + delta。

解析:

【喵呜刷题小喵解析】:
本题是一个经典的算法问题,可以使用贪心算法来解决。

首先,我们需要找到金箍棒中的最大值和最小值,这是通过遍历输入的数组来实现的。

然后,我们计算需要增加的高度delta,这是通过计算最大值和最小值的差值来实现的。

接下来,我们将所有金箍棒的高度都增加到最大值,这是通过遍历数组并将每个元素都设置为最大值来实现的。

最后,我们从高度为最大值的金箍棒开始,每次减少1,直到所有金箍棒的高度都一样,这是通过遍历数组并将每个元素都减去1来实现的。

因此,总的操作次数为N-1 + delta,这是通过计算N-1和delta的和来实现的。

在本题中,我们需要输出最少需要手指几次才能让所有金箍棒的高度都一样。因此,我们只需要输出总的操作次数即可。
创作类型:
原创

本文链接:编程实现: 孙悟空的金箍棒可以变高也可以变矮还可以变出多个金箍棒。 这天孙悟空无聊变出了N个长短不一

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share