LeetCode 热题 HOT100(二):双指针进阶与滑动窗口(Go 实现)
个人主页会编程的土豆欢迎来访作者简介后端学习者❄️个人专栏数据结构与算法数据库leetcode✨那些你一个人走过的夜路终将化作照亮未来的光本文覆盖力扣「热题 100」学习计划第 610 题全部使用Go实现。可与上一篇哈希表与双指针入门对照阅读。题单入口LeetCode 热题 10015. 三数之和难度中等标签数组、双指针、排序题目链接15. 三数之和题目描述给你一个整数数组nums判断是否存在三元组[nums[i], nums[j], nums[k]]满足i ! j、i ! k且j ! k并且nums[i] nums[j] nums[k] 0。请你返回所有和为0且不重复的三元组。示例输入nums [-1,0,1,2,-1,-4] 输出[[-1,-1,2],[-1,0,1]]思路分析先排序方便去重和双指针移动枚举第一个数nums[i]在右侧用双指针找两数之和等于-nums[i]遇到相同元素跳过避免重复三元组注意若nums[i] 0后面全为正可直接结束。Go 代码func threeSum(nums []int) [][]int { sort.Ints(nums) n : len(nums) res : make([][]int, 0) for i : 0; i n-2; i { if nums[i] 0 { break } if i 0 nums[i] nums[i-1] { continue } left, right : i1, n-1 for left right { sum : nums[i] nums[left] nums[right] if sum 0 { res append(res, []int{nums[i], nums[left], nums[right]}) for left right nums[left] nums[left1] { left } for left right nums[right] nums[right-1] { right-- } left right-- } else if sum 0 { left } else { right-- } } } return res }记得导入import sort复杂度时间复杂度O(n²)空间复杂度O(1)不计返回结果42. 接雨水难度困难标签栈、数组、双指针、动态规划、单调栈题目链接42. 接雨水题目描述给定n个非负整数表示每个宽度为 1 的柱子的高度图计算按此排列的柱子下雨之后能接多少雨水。示例输入height [0,1,0,2,1,0,1,3,2,1,2,1] 输出6思路分析双指针写法维护leftMax/rightMax当前位置左侧/右侧的最高柱哪边最大值更小就先结算哪边当前能接的水 该侧最大值 - 当前高度指针向中间移动直到相遇理解水位由「较矮一侧的最高柱」决定。Go 代码func trap(height []int) int { left, right : 0, len(height)-1 leftMax, rightMax : 0, 0 water : 0 for left right { if height[left] height[right] { if height[left] leftMax { leftMax height[left] } else { water leftMax - height[left] } left } else { if height[right] rightMax { rightMax height[right] } else { water rightMax - height[right] } right-- } } return water }复杂度时间复杂度O(n)空间复杂度O(1)3. 无重复字符的最长子串难度中等标签哈希表、字符串、滑动窗口题目链接3. 无重复字符的最长子串题目描述给定一个字符串s请你找出其中不含有重复字符的最长子串的长度。示例输入: s abcabcbb 输出: 3 解释: 因为无重复字符的最长子串是 abc所以其长度为 3。思路分析经典滑动窗口右指针不断扩展窗口用哈希表记录字符最后出现下标若右端字符已在窗口内出现左指针跳到该字符上次位置的下一位每步更新最大长度Go 代码func lengthOfLongestSubstring(s string) int { lastIndex : make(map[byte]int) left : 0 maxLen : 0 for right : 0; right len(s); right { ch : s[right] if idx, ok : lastIndex[ch]; ok idx left { left idx 1 } lastIndex[ch] right if right-left1 maxLen { maxLen right - left 1 } } return maxLen }复杂度时间复杂度O(n)空间复杂度O(|Σ|)字符集大小438. 找到字符串中所有字母异位词难度中等标签哈希表、字符串、滑动窗口题目链接438. 找到字符串中所有字母异位词题目描述给定两个字符串s和p找到s中所有p的异位词的子串返回这些子串的起始索引。不考虑答案输出的顺序。示例输入: s cbaebabacd, p abc 输出: [0,6] 解释: 起始索引等于 0 的子串是 cba, 它是 abc 的异位词。 起始索引等于 6 的子串是 bac, 它是 abc 的异位词。思路分析固定长度滑动窗口统计p的字符频次need维护窗口内字符频次window以及「已匹配字符种类数」valid窗口长度等于len(p)时判断是否完全匹配再右移时弹出左端字符字母表只有 26 个小写字母也可用[26]int数组比较。Go 代码func findAnagrams(s string, p string) []int { if len(s) len(p) { return nil } var need, window [26]int for i : 0; i len(p); i { need[p[i]-a] } res : make([]int, 0) left : 0 for right : 0; right len(s); right { window[s[right]-a] if right-left1 len(p) { window[s[left]-a]-- left } if right-left1 len(p) window need { res append(res, left) } } return res }复杂度时间复杂度O(n)n 为s长度空间复杂度O(1)560. 和为 K 的子数组难度中等标签数组、哈希表、前缀和题目链接560. 和为 K 的子数组题目描述给你一个整数数组nums和一个整数k请你统计并返回该数组中和为k的子数组的个数。子数组是数组中元素的连续非空序列。示例输入nums [1,1,1], k 2 输出2思路分析前缀和 哈希表记pre[i]为前i个数之和若存在j使得pre[i] - pre[j] k则(j, i]这一段和为k用哈希表记录「前缀和出现次数」遍历时先查pre - k的次数再把当前pre计入表注意初始要放入0:1表示前缀和为 0 出现过一次空前缀。Go 代码func subarraySum(nums []int, k int) int { count : make(map[int]int) count[0] 1 pre, ans : 0, 0 for _, num : range nums { pre num ans count[pre-k] count[pre] } return ans }复杂度时间复杂度O(n)空间复杂度O(n)小结题目核心技巧时间复杂度三数之和排序 双指针去重O(n²)接雨水左右双指针 左右最高柱O(n)无重复字符的最长子串滑动窗口 哈希表O(n)找到所有字母异位词定长滑动窗口 频次数组O(n)和为 K 的子数组前缀和 哈希表O(n)两篇合集对照序号题目篇目1两数之和第一篇2字母异位词分组第一篇3最长连续序列第一篇4移动零第一篇5盛最多水的容器第一篇6三数之和本文7接雨水本文8无重复字符的最长子串本文9找到所有字母异位词本文10和为 K 的子数组本文到这里Hot100 前 10 题的 Go 题解就齐了。建议每题自己敲一遍再对照思路巩固。如果对你有帮助欢迎点赞收藏后面可以继续写 Hot100 后续专题链表、二叉树、动态规划等

相关新闻

申报高新技术企业有什么硬性要求吗?刚成立一年可不可以报?

申报高新技术企业有什么硬性要求吗?刚成立一年可不可以报?

一、核心硬性条件(一票否决项)只有全部满足以下8项,才能通过初审:1.主体资格:企业注册成立必须满1年以上(即365个日历天数)。若刚满一年但不满365天,无法申报。2.知识产权&#xff1…

2026/7/30 3:56:32 阅读更多 →
DC-1靶机渗透测试实战:从信息收集到权限提升的完整攻击链解析

DC-1靶机渗透测试实战:从信息收集到权限提升的完整攻击链解析

1. 从零开始:为什么选择DC-1作为渗透测试的“第一课”?如果你刚接触网络安全,或者想找一个能串联起Web渗透基础知识的实战环境,DC-1靶机绝对是一个绕不开的经典选择。它不是最复杂的,但却是最“教科书式”的。我第一次…

2026/7/30 3:56:32 阅读更多 →
Vue+SpringBoot项目部署实战:宝塔面板一键部署与生产环境配置

Vue+SpringBoot项目部署实战:宝塔面板一键部署与生产环境配置

1. 项目概述与核心价值最近在社区里看到不少朋友在问,怎么把一个前后端分离的项目,从本地开发环境搬到线上服务器,让它真正跑起来。特别是用 Vue 做前端,Spring Boot 做后端,再用上 MySQL 和 Redis 这种经典技术栈的项…

2026/7/30 3:56:32 阅读更多 →

最新新闻

电商视频互动转商品评价的技术实现与优化

电商视频互动转商品评价的技术实现与优化

1. 项目背景与核心思路最近在做一个很有意思的功能改造——把视频平台的点赞、收藏、评论行为映射到电商场景中。简单说,就是让用户在观看商品展示视频时,这些互动行为能直接转化为对商品的评价数据。这个需求源于一个很实际的场景:现在很多电…

2026/7/30 4:04:36 阅读更多 →
Spark的分区数、Executor数、Task数之间的逻辑关系

Spark的分区数、Executor数、Task数之间的逻辑关系

本文从Apache Spark 的底层原理和架构来剖析:分区数、Executor 数、Task 数分别由谁决定,以及它们之间的逻辑关系。算作是一个小总结。 为了方便理解,我们先建立两个核心铁律: 一个 Task 处理一个 Partition(分区)。 Task 的并行执行数量,取决于 Executor 可用的 CPU 核…

2026/7/30 4:04:36 阅读更多 →
高速信号眼图核心参数解析:从幅度、时序到系统诊断

高速信号眼图核心参数解析:从幅度、时序到系统诊断

1. 项目概述:从“看热闹”到“看门道”眼图,对于很多刚接触高速数字信号或通信领域的朋友来说,可能是个既熟悉又陌生的概念。说熟悉,是因为但凡涉及信号完整性测试,这个词的出现频率极高;说陌生&#xff0c…

2026/7/30 4:04:36 阅读更多 →
Python编程入门:从课后题答案到解题思维与调试实践

Python编程入门:从课后题答案到解题思维与调试实践

1. 从“找答案”到“学编程”:一个老程序员的视角最近在技术社区和编程学习群里,经常看到有朋友在问《Python程序设计(第三版)》这本书的课后题答案。这本书由约翰策勒(John Zelle)所著,人民邮电…

2026/7/30 4:04:36 阅读更多 →
免费领8元无门槛优惠券

免费领8元无门槛优惠券

专属8元无门槛券限时发放,全场商品通用,不用凑单直接抵扣,领取即可下单,福利有限先到先得。 领取口令:新用户福利100042

2026/7/30 4:04:36 阅读更多 →
如何快速使用TranslucentSM:让Windows开始菜单透明化的完整指南

如何快速使用TranslucentSM:让Windows开始菜单透明化的完整指南

如何快速使用TranslucentSM:让Windows开始菜单透明化的完整指南 【免费下载链接】TranslucentSM A lightweight utility that makes the Windows Start Menu translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentSM 想要为Win…

2026/7/30 4:03:36 阅读更多 →

日新闻

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:13 阅读更多 →
如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否曾经在浏览…

2026/7/30 0:00:13 阅读更多 →
“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

更多请点击: https://intelliparadigm.com 第一章:AI 教师备课辅助 AI 教师备课辅助系统正逐步成为教育数字化转型的核心支撑工具,它并非替代教师,而是通过语义理解、知识图谱与多模态生成能力,将教师从重复性劳动中解…

2026/7/30 0:00:13 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/29 22:18:20 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻