本题是经典的一次扫描模拟:从左到右遍历心跳数组 beats。
cur 记录当前连续健康(值为 1)的长度。1 时 cur += 1,并用 best 维护历史最大值。0 时把 cur 清零,表示连续段被打断。1,best 保持为 0。运维系统按时间顺序记录某服务的心跳结果 beats。数组中每个元素只取两种值:
1:该次心跳健康0:该次心跳失败请返回最长连续健康心跳的长度。若一次健康都没有,返回 0。
请实现:
longestHealthy(beats: int[]) -> int
一行:整型数组 beats,形如 [1, 1, 0, 1, 1, 1]。
约束:
一个整数:最长连续 1 的长度。
输入:
[1, 1, 0, 1, 1, 1]
输出:
3
说明:末尾连续三个 1 最长,长度为 3。中间还有一段长度为 2 的连续健康。
输入:
[0, 0, 0]
输出:
0
说明:没有健康心跳。
输入:
[1]
输出:
1
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.