AmazonCrackedResource第3周刷题解析:滑动窗口与双指针组合拳,突破高频经典题
2026/9/19 5:32:29 网站建设 项目流程

AmazonCrackedResource第3周刷题解析:滑动窗口与双指针组合拳,突破高频经典题

【免费下载链接】AmazonCrackedResourceA List of frequently asked questions in Amazon's Online Assessment and Interviews项目地址: https://gitcode.com/gh_mirrors/am/AmazonCrackedResource

AmazonCrackedResource 是一份亚马逊高频面试题(Online Assessment + 面试)刷题清单项目。本文聚焦其中的第3周刷题计划,围绕滑动窗口双指针两大核心技巧,带你逐题拆解10道高频经典题,帮助你在面试前快速突破子串、区间、股票交易类问题 💪

📋 第3周题单速览:10道高频经典题

第3周的10道题目完整收录在 CrackAmazonResource.md 文件第65–79行,建议先通读一遍题单,再按技巧分组攻克:

题目核心技巧难度定位
Longest Substring Without Repeating Characters滑动窗口 + 哈希表中等
Add Two Numbers链表 + 进位模拟中等
Merge Intervals排序 + 贪心中等
Analyze User Website Visit Pattern排序 + 分组统计中等
Prison Cells After N Days模拟 / 找循环节简单
Meeting Rooms II排序 + 最小堆中等
Group Anagrams哈希表分类中等
Sliding Window Maximum单调队列困难
Median of Two Sorted Arrays二分 + 双指针困难
Best Time to Buy and Sell Stock双指针 / 动态规划简单

你会发现一个规律:第3周是"窗口与指针"的集中训练场——10道题里至少5道可以直接套用滑动窗口或双指针模板。

🪟 滑动窗口入门:无重复字符的最长子串(必刷第一题)

Longest Substring Without Repeating Characters是滑动窗口的"开山题",亚马逊面试出现率极高。

🧠思路三步走:

  1. 右指针扩张:窗口[left, right]内的字符保证不重复,每步把right的新字符加入窗口;
  2. 左指针收缩:一旦发现right字符已在窗口内,就把left跳到"该字符上次出现位置的下一位",瞬间完成收缩,无需逐格移动;
  3. 哈希表加速:用一个表记录每个字符最近一次出现的下标,收缩一步到位,整体时间复杂度降为 O(n)。

💡面试加分点:主动说清楚"为什么收缩不是一步步挪",这是考察你对窗口不变量理解的关键。

🪟 滑动窗口进阶:Sliding Window Maximum(单调队列)

Sliding Window Maximum是第3周唯一的 Hard 题,也是窗口题的天花板:维护一个大小为 k 的窗口,每步输出窗口最大值。

🧠核心技巧——单调递减队列:

  • 队列里存元素下标,值保持从大到小;
  • 新元素进队前,把队尾所有比它小的元素弹出(它们永远不会再成为最大值);
  • 每次滑动,检查队头是否已滑出窗口,滑出则弹出;
  • 每个元素最多进队、出队各一次,因此总复杂度 O(n)。

这道题与入门题对照着刷,你就能看到滑动窗口从"哈希表辅助"到"结构维护极值"的完整进化路线 📈

🔗 双指针入门:Best Time to Buy and Sell Stock

Best Time to Buy and Sell Stock看似是动态规划,本质是双指针思想:

  • 指针一始终指向"历史最低价格"(只更新更小值);
  • 指针二逐日扫描,用"当日价 - 最低价"计算最大利润;
  • 一次遍历,O(n) 时间、O(1) 空间。

⚠️ 注意:亚马逊常追问其变体(含手续费、只能交易两次、可无限次),建议把这题当作指针 + 状态维护的模板来记,而不是死背解法。

🔗 双指针进阶:Median of Two Sorted Arrays

Median of Two Sorted Arrays要求 O(log(m+n)) 找两个有序数组的中位数,是第3周最硬的一道。

🧠破题关键:

  • 在较短数组上二分切分点,使左半部分总长度固定为(m+n+1)/2
  • 切分点由"短数组的指针"唯一确定,长数组的切分点随之算出——这就是双指针的配合;
  • 校验"左侧最大值 ≤ 右侧最小值",满足即得中位数,否则调整二分边界。

面试时把"为什么在短数组上二分"讲清楚(省一半搜索空间 + 统一边界处理),基本能拿到满分表达。

📊 组合拳篇:Merge Intervals 与 Meeting Rooms II

这两道题是"排序 + 指针/堆"的组合拳,也是亚马逊系统分析类场景题的常客:

Merge Intervals(合并区间)

  • 先按区间左端点排序;
  • 用一个指针遍历,若当前区间左端点 ≤ 上一个区间右端点,则合并取更大的右端点;
  • 一次遍历完成合并,核心是"排序后重叠问题退化为线性扫描"。

Meeting Rooms II(会议室数量)

  • 同样先按开始时间排序;
  • 用最小堆维护"正在使用会议室的结束时间";
  • 每个会议开始先弹出已结束的堆顶,堆的最大规模就是需要的会议室数。

💡 建议把这两题当成一组刷:前者练"排序 + 单指针扫描",后者练"排序 + 堆维护重叠数",组合拳打完,区间类问题基本免疫。

📅 第3周7天刷题计划表

天数题目安排目标
Day 1无重复字符最长子串 + Sliding Window Maximum吃透滑动窗口模板
Day 2买卖股票的最佳时机 + 两个有序数组的中位数双指针 + 二分配合
Day 3合并区间 + 会议室 II区间组合拳
Day 4字母异位词分组 + 分析用户网站访问模式哈希表分类技巧
Day 5两个数相加 + 监狱困N天后牢房状态链表与模拟题
Day 6重做本周所有错题限时独立复现
Day 7随机抽3道做45分钟模拟面试练表达与白板

🚀 如何快速开始使用 AmazonCrackedResource

三步上手,立刻进入第3周刷题状态:

  1. 克隆仓库(git clone 地址):

    git clone https://gitcode.com/gh_mirrors/am/AmazonCrackedResource

  2. 打开清单:核心文件是CrackAmazonResource.md,第3周题单在第65–79行,旁边配有状态列与难度列;README.md则汇总了配套的完整 DSA 学习资源导航;

  3. 打卡追踪:每做完一题,把表格中 Status 列改为Done ✅、In Progress 🕓 或 Skipped ❌,难度按 Easy 到 Hard 五档自评,一周后回看自己的进度曲线,坚持每周提交一次 commit 就是最好的学习节奏。

项目基于 MIT 协议发布(见LICENSE),可自由 fork 与二次创作。

✍️ 小结

第3周的关键词只有八个字:窗口收缩,指针推进。滑动窗口练"边界的维护",双指针练"状态的压缩",而 Merge Intervals、Meeting Rooms II 这类组合拳题则检验你拆题的功力。按上面的7天计划把10道题刷完,你在子串与区间两大高频考区就已经超过了大多数竞争者 🏆

【免费下载链接】AmazonCrackedResourceA List of frequently asked questions in Amazon's Online Assessment and Interviews项目地址: https://gitcode.com/gh_mirrors/am/AmazonCrackedResource

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询