爱生气的书店老板
难度:
标签:
题目描述
代码结果
运行时间: 39 ms, 内存: 17.6 MB
解释
方法:
该题解采用了滑动窗口的方法来解决问题。首先,通过一个滑动窗口来找出如果书店老板连续不生气持续 `minutes` 分钟时,可以使得最多的顾客满意的区间。在这个过程中,我们维护一个窗口,窗口大小为 `minutes`,窗口内包括了因为老板生气而导致的不满意的顾客数量。接着,我们遍历整个 `customers` 数组,调整 `grumpy` 数组,使得在选定的 `minutes` 分钟内,老板不生气(即将 `grumpy` 对应位置置为0)。最后,重新计算整个数组中满意顾客的总数。通过这种方式,我们可以得到最大的满意顾客数。
时间复杂度:
O(n)
空间复杂度:
O(1)
代码细节讲解
🦆
在滑动窗口算法中,为什么选择对只在老板生气的分钟内的顾客数进行累加和窗口移动?
▷🦆
如果最优的连续 `minutes` 分钟开始或结束在数组的边界,这种情况下算法的表现是否稳定?
▷🦆
算法中如何保证只修改一次 `grumpy` 数组,确保书店老板只使用一次不生气的技巧?
▷🦆
为什么在完成滑动窗口操作后,需要单独遍历一次 `customers` 数组来计算总的满意顾客数?
▷