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

简答题

寻宝石

编程实现:

有N(1<N<100)个盒子排成一排,每个盒子都放有宝石。请找出3个连续的盒子,使得3个盒子中的宝石数量之和最多。

例如:N = 5,盒子中的宝石数量依次为6、2、4、5、1。

3个连续的盒子共有3组,分别为(6,2,4)、(2,4,5)、(4,5,1),宝石数量之和最多是(6,2,4),宝石数量为12。

输入描述:

第一行输入一个正整数N(1<N<100),表示这排盒子的数量

第二行输入N个正整数(1≤正整数<100),表示盒子中依次放有的宝石数量,正整数之间以一个空格隔开

输出描述:

输出一个整数,表示3个连续的盒子最多的宝石数量


样例输入:

5
6 2 4 5 1

样例输出:

12

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

答案:

br />```pythonN = int(input())gem_nums = list(map(int, input().split()))max_sum = max_start = max_end = 0for i in range(N - 2):cur_sum = gem_nums[i] + gem_nums[i + 1] + gem_nums[i + 2]if cur_sum > max_sum:max_sum = cur_summax_start = imax_end = i + 2print(max_sum)```

解析:

【喵呜刷题小喵解析】

这个问题可以通过遍历数组,找出连续三个数的和的最大值来解决。我们首先将输入的宝石数量存入一个列表中,然后从列表的前三个元素开始,计算它们的和,如果和比当前的最大值还大,就更新最大值和对应的起始、结束位置。最后输出最大值即可。

首先,我们读取输入的两个数,第一个数N表示盒子的数量,第二个数是一个由空格分隔的整数列表,表示每个盒子中的宝石数量。

然后,我们初始化三个变量:max_sum表示三个连续盒子的宝石数量的最大值,max_start和max_end分别表示这个最大值对应的三个盒子的起始和结束位置。

接下来,我们遍历列表的前N-2个元素,对于每个元素,我们计算它、它后面的一个元素和再后面的一个元素的和,如果这个和比当前的max_sum还大,就更新max_sum、max_start和max_end。

最后,我们输出max_sum,即三个连续盒子的宝石数量的最大值。
创作类型:
原创

本文链接:寻宝石 编程实现: 有N(1<N<100)个盒子排成一排,每个盒子都放有宝石。请找出3个连续的盒子

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

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

分享考题
share