滑动窗口模板
滑动窗口模板
以 1052. 爱生气的书店老板 为例
class Solution { /** * @param Integer[] $customers * @param Integer[] $grumpy * @param Integer $X * @return Integer */ function maxSatisfied($customers, $grumpy, $X) { if (empty($customers)) { return 0; } // 1. 计算初始状态: 不压抑的时候,最大的满意人数 $maxSat = 0; foreach ($grumpy as $key => $g) { if ($g == 0) { $maxSat += $customers[$key]; } } // 1.1 初始化左右指针位置 $len = count($customers); $left = $right = 0; $curSat = $maxSat; // 2. 滑窗具体代码 // 2.1 右指针一直往右做 while ($right < $len) { $span = $right - $left + 1; // 2.1 直到遇到临界条件之后,左指针往右走,知道满足临界条件 if ($span > $X) { if ($grumpy[$left]) { $curSat -= $customers[$left]; } $left ++; } // 计算当前窗口的数值 if ($grumpy[$right]) { $curSat += $customers[$right]; } // 最终结果比较 $maxSat = max($curSat, $maxSat); $right++; } return $maxSat; } }
参考
多看几个题解:
- lc 的官方题解: 爱生气的书店老板
一般官方题解的思路会非常详细,建议多看几遍 - 用「秘密技巧」挽留住最多的原本因为生气而被赶走的顾客
本文来自博客园,作者:吴丹阳-V,转载请注明原文链接:https://www.cnblogs.com/wudanyang/p/14491849.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)