题目解析
本题需要注意下
没有连续的迟到/早退;
根据考友反馈,连续的迟到/早退,应该指:本次是迟到或早退,上次也是迟到或早退。
比如,本次是迟到,上次是早退,则也算是:连续的迟到/早退
本题主要难点在于如果统计”任意连续7次考勤“中的缺勤/迟到/早退次数。
这里我们可以使用滑动窗口,且滑窗窗口的长度最大为7
- 当滑窗右边界索引R < 7 时,则滑窗长度 = R + 1
- 当滑窗右边界索引R >= 7时,则滑窗长度 = 7,同时能推导出滑窗左边界索引L为 = R - 6
如下图所示
我们只要计算出滑窗内部 present 次数,即可通过:
滑窗长度 - present次数 = 任意连续7次考勤中的缺勤/迟到/早退次数
JS算法源码
const rl = require("readline").createInterface({ input: process.stdin });
va