大家好,我是吴师兄。
首先来分享一个同学的求职经历,真的是非常坎坷,每天都得来群里进行一次心里按摩才能熬过去,好在幸运拿到offer了。
个人背景:
17 年毕业,工作 6 年多,一直从事非开发工作。
编码基础
写过少许自动化测试用例,无算法基础。
坎坷的时间线
1 月 10 日机考
2 月 19 日资面
3 月 4 日技术一面
3 月 7 日技术二面
3 月 19 日技术三面
3 月 23 日综合面试
没等到结果[裂开]
(期间经历了艰难的几天,在老师的帮助下争取到了换部门)
4 月 10 日再次资格面试
4 月 12 日综合面试
4 月 20 日 offer
面试经历
机考
1️⃣第一遍:很扎实的学了一遍,每天听完课都会去刷课上的题和作业题。
2️⃣第二遍:1.5 倍速听了一遍课,把觉得不熟的题目又刷了一遍。
3️⃣第三遍:2 倍速听了掌握的不太好的课,把 C 卷的题全部刷完了。
技术 1 面:按照老师的文档准备了,但是没问八股,问的项目,手撕(不定滑窗:
不含有重复字符的最长子串
)
技术 2 面:依然没问八股,问的项目,手撕(
第 k 个最大元素
)
技术 3 面:八股自由发挥,问了一点项目,手撕(最长公共前缀,没做出来。换题了,换了力扣 125 题双指针)
心得
我属于心态一般的同学,机试第一题板子题。
第二题不是板子题紧张了,没做出来。
第三题也不是原题,但是我比较熟练的 BFS 题加剧了紧张,导致心态有点崩,还好及时调整过来了,答得效果还不错。
对于面试,尤其是手撕,真的会非常紧张,但是可以在和面试官聊的过程中慢慢调整心态,让自己稳定下来。
对于这坎坷的时间线我真的有话说。
为什么换部门?
因为第一个部门真的有点坑(我说的很委婉了)综面完两周,没有让我填写应聘信息登记表,没有跟我要过任何资料。
每次问进展都说在催,根据多年的工作经验,结合部门接口人的态度,猜到这种大概率只是话术,事实上可能没有任何进展。
于是找到老师,了解到更多的信息后,毅然决定换部门,甚至想把某某也换掉,经过一番波折(故事太多,没办法细说,有感兴趣的同学我可以展开说),成功换了部门,也将自己脱变很久的现状告诉了新的部门。
新部门很友好也很负责任的帮我加快了面试流程,终于顺利拿到 offer 。
继续今天的算法学习,来一个中等的算法题:
无重复字符的最长子串
。
一、题目描述
给定一个字符串
s
,请你找出其中不含有重复字符的
最长子串
的长度。
示例 1:
输入: s = "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:
输入: s = "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
示例 3:
输入: s = "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
提示:
-
0 <= s.length <= 5 * 10^4
-
二、题目解析
很经典的
滑动窗口
的题目。
具体操作如下:
1、定义需要维护的变量,对于此题来说,要求是最大长度,同时又涉及去重,因此需要一个哈希表。
2、定义窗口的首尾端 (start, end), 然后滑动窗口。
3、窗口的右端位置从 0 开始,可以一直移动到尾部。
4、如果哈希表中存储了即将加入滑动窗口的元素,那么需要不断的把窗口左边的元素移除窗口。
5、此时,滑动窗口可以接纳新增元素。