题目描述
工位由序列F1,F2…Fn组成,Fi值为0、1或2。其中0代表空置,1代表有人,2代表障碍物。
1、某一空位的友好度为左右连续老员工数之和,
2、为方便新员工学习求助,优先安排友好度高的空位,
给出工位序列,求所有空位中友好度的最大值。
输入描述
第一行为工位序列:F1,F2…Fn组成,
1<=n<=10000,Fi值为0、1或2。其中0代表空置,1代表有人,2代表障碍物。
输出描述
所有空位中友好度的最大值。如果没有空位,返回0。
// 滑动窗口
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
List<Integer> list = new ArrayList<>();
while (in.hasNextInt()){
list.add(in.nextInt());
}
if (!list.contains(0)){
System.out.println(0);
return;
}
// 防止越界,添加一个2,以便最后一次记录
list.add(2);
// 记录之前0的数量
int front = 0;
// 当前遍历0的数量
int cur = 0;
// 最大值
in