一、题目描述
在一个狭小的路口,每秒只能通过一辆车,假设车辆的颜色只有 3 种,找出 N 秒内经过的最多颜色的车辆数量。
三种颜色编号为0 ,1 ,2
二、输入描述
第一行输入的是通过的车辆颜色信息[0,1,1,2] ,代表4 秒钟通过的车辆颜色分别是 0 , 1 , 1 , 2
第二行输入的是统计时间窗,整型,单位为秒
三、输出描述
输出指定时间窗内经过的最多颜色的车辆数量。
四、解题思路
比如输入
0 1 2 2 1 0
4
4秒内经过的最多颜色的车辆数量。
4秒内经过了那几辆车:0 1 2 2
颜色最多的车辆是2,数量是2,即输出2。
解题思路:
- 通过滑动窗口的思想,先获取第一个窗口中每种颜色车辆的个数,取同等颜色的最多车数量;
- 窗口向右滑动,right+1是新增车辆颜色,数量+1,left+1是移除车辆颜色,数量-1
- 然后取相同颜色车辆个数的最大值
- 以此类推
五、Java算法源码
public class OdTest01