拿下技术面上传简历

请手写一个函数:输入一个只包含小写字母的字符串 s,返回其中不含重复字符的最长连续子串的长度。例如 s = "abcabcbb" 返回 3,s = "bbbbb" 返回 1,s = "" 返回 0。要求时间复杂度 O(n),并在写完后说明你在循环里维护的那个不变量(不变式)到底是什么,以及它为什么保证答案不会漏掉。

代码能力与调试排障现场编码校招知识点 1 个

面试官在考什么

看候选人能不能把一个「听起来会做」的滑动窗口题真正写成每一步都站得住的代码,而不是背一个模板。

手写算法

回答框架 · 前两步

  1. 右指针单向遍历字符串,每步把 s[right] 纳入窗口;用哈希表记录每个字符最近一次出现的下标,左指针更新为 max(left, lastIndex[s[right]] + 1),保证窗口内始终无重复。
  2. 复杂度说清楚:右指针只前进 n 次,每个字符最多被移出窗口一次,所以是 O(n) 时间;空间是 O(字符集大小),小写字母场景可写成 O(1)。

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

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

同一能力域的其他题