当前位置: 首页 > 面试经验 >

【华为OD机试2023】找出通过车辆最多颜色(Python)

优质
小牛编辑
113浏览
2023-03-28

【华为OD机试2023】找出通过车辆最多颜色(Python)

题目描述:

在一个狭小的路口,每秒只能通过一辆车,假如车辆的颜色只有3种,找出N秒内经过的最多颜色的车辆数量

三种颜色编号为0,1,2

输入描述:

第一行输入的是通过的车辆颜色信息

[0,1,1,2] 代表4秒钟通过的车辆颜色分别是0,1,1,2

第二行输入的是统计时间窗,整型,单位为秒

输出描述:

输出指定时间窗内经过的最多颜色的车辆数量

示例1

输入:

0 1 2 1

3

输出:

2

说明:

在[1,2,1]这个3秒时间窗内,1这个颜色出现2次,数量最多

示例2

输入:

0 1 2 1

2

输出:

1

说明:

在2秒时间窗内,每个颜色最多出现1次

解题思路:

滑动窗口,先统计从0开始的长度为time的时间内,每个颜色的车出现的次数是多少,存储在列表中,分别是store[0],store[1],store[2]

然后开始移动窗口,被移出窗口的左边tou位置处的颜色的次数减一,被添加进窗口的右边wei位置处的颜色次数加一,不断重复直至窗口滑动到时间最后。


lst=list(map(int,input().split()))
time=int(input())
store=[0,0,0]
max_count=0
for i in range(3):
store[i]=lst[0:time].count(i)
max_count=max(max_count,store[i])
tou=0
wei=time
while wei<len(lst):
store[lst[wei]]+=1
store[lst[tou]]-=1
max_count = max(max_count,store[lst[wei]])
tou+=1
wei+=1
print(max_count)

#华为机试,emo了#
 类似资料: