一、题目描述
近些年来,我国防沙治沙取得显著成果。某沙漠新种植N棵胡杨(编号1-N),排成一排。一个月后,有M棵胡杨未能成活。现可补种胡杨K棵,请问如何补种(只能补种,不能新种),可以得到最多的连续胡杨树?
二、输入描述
- N 总种植数量 1<=N<=100000
- M 未成活胡杨数量 1<=M<=N M 个空格分隔的数,按编号从小到大排列
- K 最多可以补种的数量 0<=K<=M
三、输出描述
最多的连续胡杨棵树
四、解题思路
- 第一行输入总种植数量N;
- 第二行输入未成活胡杨数量M;
- 第三行分别输入未成活胡杨的编号;
- 第四行输入补种胡杨的数量K;
- 定义一个数组arr,默认有胡杨的位置都是1;
- 将未成活胡杨的编号定义为0;
- 遍历胡杨树数组;
- 当时未成活的胡杨时,连续未成活的胡杨+1;
- 如果未成活的胡杨树大于可以补种的数量K,则不是连续的胡杨;
10.否则取出连续的胡杨最大值;
五、Java算法源码
public