LeetCode Hot100刷题日志D7
1423. 可获得的最大点数题目描述给定一个整数数组cardPoints每次可以从数组最左边或最右边拿一张牌一共拿k张要求返回可以获得的最大点数。复盘笔记这道题表面上是从两端取牌但本质是在枚举“左边拿几张右边拿几张”的所有组合。因为一共只能拿k张所以方案一定是左边拿 0 张 右边拿 k 张 左边拿 1 张 右边拿 k-1 张 ... 左边拿 k 张 右边拿 0 张代码先假设全部从左边拿k张计算初始总分。然后每次把左边已经拿的一张牌“换成”右边的一张牌。也就是加上右边新拿的牌减去左边少拿的牌并不断更新最大得分。这道题的关键是理解cardPoints[-i]表示从右边数第i张牌cardPoints[k - i]表示当前要从左边方案中退掉的那张牌。class Solution: def maxScore(self, cardPoints: List[int], k: int) - int: ans s sum(cardPoints[:k]) for i in range(1, k 1): s cardPoints[-i] - cardPoints[k - i] ans max(ans, s) return ans面试时所用到的一段话解释本题的思想这道题我会枚举从左边拿多少张、从右边拿多少张。因为总共拿k张所以这两部分数量之和固定为k。我先计算全从左边拿k张的得分然后每次把一张左边的牌替换成一张右边的牌用当前得分更新最大值。这样可以在O(k)时间内枚举所有可能的取牌方案。2379. 得到 K 个黑块的最少涂色次数题目描述给定一个只包含W和B的字符串blocks其中W表示白色块B表示黑色块。每次操作可以把一个白色块染成黑色要求得到至少一个长度为k的连续黑色块返回最少需要染色的次数。复盘笔记这道题可以转化为在blocks中找一个长度为k的窗口使窗口里的白色块W数量最少。因为要让这个窗口全部变成黑色只需要把其中的白色块染黑即可所以窗口中有几个W就需要几次操作。可以先统计第一个长度为k的窗口中W的数量然后窗口每次向右移动一格。右边新进来的字符如果是W计数加一左边离开的字符如果是W计数减一。每形成一个窗口就更新最小值。需要注意的是当前窗口里的白色块数量和最终答案不是同一个变量。当前计数会随着窗口滑动变化而答案应该保存见过的最小白色块数量。class Solution: def minimumRecolors(self, blocks: str, k: int) - int: ans cnt_w blocks[:k].count(W) for in_, out in zip(blocks[k:], blocks): cnt_w (in_ W) - (out W) ans min(ans, cnt_w) return ans面试时所用到的一段话解释本题的思想这道题我会使用定长滑动窗口。目标是得到连续k个黑块所以我只需要找一个长度为k的区间使里面白色块数量最少。窗口中的白色块数量就是需要涂色的次数。滑动时维护当前窗口内W的数量每次右端点进入、左端点离开并用当前数量更新最小答案。2841. 几乎唯一子数组的最大和题目描述给定一个整数数组nums以及整数m和k。要求找到长度为k的子数组并且这个子数组中至少有m个不同元素返回所有满足条件的子数组中的最大元素和。复盘笔记这道题是定长滑动窗口加哈希表统计。窗口长度固定为k需要维护两个信息当前窗口的元素和以及当前窗口中不同元素的数量。元素和可以用变量s维护。不同元素数量可以用哈希表cnt维护每个元素出现的次数len(cnt)就表示当前窗口中不同元素的数量。每次右端点进入窗口时把当前数字加入窗口和并在哈希表中计数加一。当窗口长度达到k后如果len(cnt) m说明当前窗口满足条件就用窗口和更新答案。然后让左端点离开窗口更新窗口和与哈希表。class Solution: def maxSum(self, nums: List[int], m: int, k: int) - int: ans s 0 cnt defaultdict(int) for i, x in enumerate(nums): s x cnt[x] 1 left i - k 1 if left 0: continue if len(cnt) m: ans max(ans, s) out nums[left] s - out cnt[out] - 1 if cnt[out] 0: del cnt[out] return ans面试时所用到的一段话解释本题的思想这道题我会用定长滑动窗口维护长度为k的子数组同时用哈希表统计窗口内每个数字出现的次数。窗口和用于计算答案哈希表的键数量用于判断不同元素个数。当窗口长度达到k时如果不同元素数量至少为m就更新最大和。随后移除左端点元素继续滑动窗口。整体复盘总结今天这几道题依然围绕定长滑动窗口展开但每道题维护的信息略有不同。2379维护窗口中 W 的数量求最小值 2841维护窗口和 不同元素数量求最大合法窗口和 1423枚举左边拿几张、右边拿几张本质也是固定数量 k 的选择滑动窗口题最重要的是明确三个问题1. 窗口长度是多少 2. 窗口里要维护什么信息 3. 窗口形成后答案在什么时候更新今天的收获是看到“连续k个”“长度为k的子数组”“从两端一共取k个”这类描述时要优先考虑固定窗口或者固定数量枚举。关键不是死记模板而是把题目转化成每次只让一个元素进来、一个元素出去并维护窗口中的有效信息。

相关新闻

Postman接口测试,配置token为全局变量,配置测试环境

Postman接口测试,配置token为全局变量,配置测试环境

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 为什么要进行接口测试 因为不同端(前段,后端)的工作进度不一样,所以我们要针对最开始出来的接口,以…

2026/7/9 7:31:52 阅读更多 →
EKF CD3-99-JIVE 通讯模块

EKF CD3-99-JIVE 通讯模块

EKF CD3-99-JIVE 通讯模块产品特点EKF CD3-99-JIVE 通讯模块是一款工业级通讯接口设备,专为系统间数据交换与协议转换而设计,具备可靠的连接与传输能力。产品特点:支持多种工业现场总线协议,适配主流控制系统。通讯接口丰富&#…

2026/7/9 7:25:51 阅读更多 →
AI智能体入门指南:小白程序员必备,收藏学习大模型新趋势!

AI智能体入门指南:小白程序员必备,收藏学习大模型新趋势!

本文系统讲解了AI智能体的基本概念、组成部分(大模型、工具、记忆、工作流)、核心用途及常用工具。AI智能体能够自主思考、调用工具、执行任务并调整行动,适用于信息调研、办公自动化、编程开发、数据分析、内容生产和个人助理等场景。文章还…

2026/7/9 7:25:51 阅读更多 →

最新新闻

计算机毕业设计之基于SSM框架个人财物系统的设计与实现

计算机毕业设计之基于SSM框架个人财物系统的设计与实现

随着经济的快速发展和人们生活水平的不断提高,个人财务管理的重要性日益凸显。传统的财务管理方式已难以满足用户对财物管理精细化、智能化的需求,亟需借助信息化技术构建高效便捷的管理系统。本设计旨在基于SSM框架,运用Java开发语言&#x…

2026/7/9 8:18:11 阅读更多 →
Java之动态代理 DynamicProxy

Java之动态代理 DynamicProxy

动态代理概念 在学习动态代理之前,先了解静态代理,可参考静态代理 静态代理核心缺陷 类爆炸:一个接口实现类,必须手写一个专属代理类,业务类越多,代理类文件成倍增加;增强逻辑无法复用&#…

2026/7/9 8:14:09 阅读更多 →
为什么不接负极, 电器就 无法工作?

为什么不接负极, 电器就 无法工作?

既然正极有电(比如 5V),电已经顺着导线流进电器(芯片、灯泡)里了,电器不就该拿到能量开始工作了吗?为什么非要连回负极呢?” 水流与水车比喻(直观理解能量交换&#xff0…

2026/7/9 8:10:05 阅读更多 →
np.percentile和np.clip

np.percentile和np.clip

异常值清洗:q1, q99 np.percentile(raw, [1, 99]) raw np.clip(raw, q1, q99) # 简单的限幅假设我们现在又这么一组体温数据:raw [36.5, 36.6, 36.4, 36.7, 36.5, 36.6, 36.4, 36.5, 36.6, 36.7,36.5, 36.6, 36.4, 36.7, 36.5, 36.6, 36.4, 36.5, 3…

2026/7/9 8:10:05 阅读更多 →
南京GEO优化服务商排行榜

南京GEO优化服务商排行榜

在AI搜索流量成为企业增长新引擎的今天,南京作为长三角经济重镇,涌现出不少GEO优化服务商。但服务商水平参差不齐,稍有不慎就可能踩坑。本文结合行业实操经验,帮你梳理选择逻辑,避开常见陷阱。开篇核心结论选购GEO优化…

2026/7/9 8:10:05 阅读更多 →
ST-DBSCAN时空聚类:3分钟掌握移动数据分析的终极利器

ST-DBSCAN时空聚类:3分钟掌握移动数据分析的终极利器

ST-DBSCAN时空聚类:3分钟掌握移动数据分析的终极利器 【免费下载链接】st_dbscan ST-DBSCAN: Simple and effective tool for spatial-temporal clustering 项目地址: https://gitcode.com/gh_mirrors/st/st_dbscan 想要从海量的移动轨迹数据中发现隐藏的时空…

2026/7/9 8:06:02 阅读更多 →

日新闻

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南 【免费下载链接】ESLyric-LyricsSource Advanced lyrics source for ESLyric in foobar2000 项目地址: https://gitcode.com/gh_mirrors/es/ESLyric-LyricsSource 还在为Foobar2000找不到高质…

2026/7/9 0:01:04 阅读更多 →
ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍

ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍

ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍 【免费下载链接】ElegantBook Elegant LaTeX Template for Books 项目地址: https://gitcode.com/gh_mirrors/el/ElegantBook 你是否曾经为学术书籍的封面设计而烦恼?想要一个既专业又美观的封…

2026/7/9 0:03:06 阅读更多 →
如何高效使用pyodbc:企业级数据库连接终极指南

如何高效使用pyodbc:企业级数据库连接终极指南

如何高效使用pyodbc:企业级数据库连接终极指南 【免费下载链接】pyodbc Python ODBC bridge 项目地址: https://gitcode.com/gh_mirrors/py/pyodbc 在当今数据驱动的商业环境中,企业级数据库连接已成为现代应用开发的核心需求。pyodbc作为一款强大…

2026/7/9 0:07:11 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/8 16:14:06 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/8 16:59:55 阅读更多 →

月新闻