拿下技术面上传简历

给一个由正数组成的数组(长度可达 10^7,只能顺序读一遍,额外内存 O(1)),求和 ≥ target 的最短连续子数组的长度。你打算怎么用滑动窗口做?为什么元素必须为正?如果元素可正可负,你的方案要怎么改?

数据结构与算法图与搜索3-5 年知识点 1 个

面试官在考什么

考察滑动窗口的适用前提(窗口和关于指针移动的单调性)、收缩时机的正确性,以及前提不成立时能否切换到正确方案。

滑动窗口

回答框架 · 前两步

  1. 右指针从 0 扫到 n-1,每加入一个元素维护窗口和;只要 sum ≥ target,就持续收缩左指针并更新最短长度,直到 sum < target。
  2. 每个元素最多被右指针加入一次、被左指针移除一次,总时间 O(n)、空间 O(1),天然适配单遍流式读取。

还有 3 条答案要点、 3 层追问、 4 个常见坑, 以及针对你简历的追问路径,在定制报告里。

上传简历,生成我的题库先看示例报告

延伸阅读

想看这个方向的整体准备路线? 进入「数据结构与算法」方向页

同一能力域的其他题