华为OD机试真题100分题 C/C++/Java/Python/Js/Go【补种未成活胡杨】

题目描述:

【补种未成活胡杨】
近些年来,我国防沙治沙取得显著成果。某沙漠新种植N棵胡杨(编号1-N),排成一排。一个月后,有M棵胡杨未能成活。现可补种胡杨K棵,请问如何补种(只能补种,不能新种),可以得到最多的连续胡杨树?

输入描述:
N 总种植数量
M 未成活胡杨数量
M 个空格分隔的数,按编号从小到大排列
K 最多可以补种的数量
其中:
1 <= N <= 100000
1 <= M <= N
0 <= K <= M

输出描述
最多的连续胡杨棵树
示例1 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
5
2
2 4
1
输出
3
说明
补种到2或4结果一样,最多的连续胡杨棵树都是3。
示例2 输入输出示例仅供调试,后台判题数据一般不包含示例

输入
10
3
2 4 7
1
输出
6

说明
补种第7棵树,最多的连续胡杨棵树为6(5,6,7,8,9,10)。

解题思路:

首先读取N,M,死亡树的位置和K。然后它计算每两棵死亡的树之间的间隔(gap)。排序这些间隔后,程序开始尝试用K棵树填补最大的间隔,直到没有树可以种植或者没有间隔可以填补为止。最后

猜你喜欢

转载自blog.csdn.net/Xidian2850/article/details/131926463