<
查看: 16241|回复: 69
收起左侧

[Leetcode] 1000+刷题经验及面试感悟分享

    |只看干货
Upstairs | 显示全部楼层 |阅读模式
本楼: 👍   100% (99)
 
 
0% (0)   👎
全局: 👍   100% (370)
 
 
0% (0)    👎
先上图为敬。


楼主目前在g,最近面了几家公司,有失败有成功,希望结合刷题经验及面试经历的感悟一道做个分享。

先说刷题,我不是要面试了才准备刷的,而是一直断断续续在leetcode上做题。

我的观点是,如果你基础不是特别好,前300道题,就直接看别人解法,看懂了,自己写一遍,反复看反复写,直到能完全自己从头到尾写出来并ac为止。

完成这一步后,继续300道到500道之旅,这时候,你应该对每一道题都仔细思考下,尽量能自己做出来。有些动态规划的难题,确实很难自己推导出来,那么还是像之前那样,看别人的思路和代码,看懂了,理解了,自己独立写一遍。

500道题下肚,我自己是有种打通任督二脉的感觉。这个时候继续向800道进发,这三百道题,我都是自己尽量做出来,这时候要求两点,第一,代码要简洁干练,第二,思路有了后,转化为代码的速度要快而准。另外,这个阶段,应该追求多试几种解法。比如,很多图的问题,都起码有两种解法,一是dfs/bfs,二是union-find。那么你最好两种都实现一遍。仔细比较下两种解法的时间和空间复杂度,以及其他优劣。举个例子,leetcode里有道题,是给一个二维grid,里面每个点是个integer,上下左右如果数字相同就算联通,联通的点就形成了一个岛,求最大面积的岛,返回面积即可。这道题dfs/bfs和union-find都可以做。但如果来个follow up,说这个grid特别大,放不进内存,你怎么做?此时用union-find就有了巨大优势,你完全可以一行一行的处理,这样每次读入内存两行数据就行。并且,这个代码非常容易写出来。

另外,500道题后,可以多参加每周六的比赛。我觉得我在比赛中学到的更多,一个很重要的点是,在比赛时,你会非常关注题目最后的约束条件,比如一个数组的长度如果给了最多10^3,那基本可以用O(n^2)解法。如果是10^5,那必须控制在O(NlogN)。如果到10^9了,那就得O(n)甚至O(logN)。这种训练多了, 你在面试中,也会条件反射的去clarify一些输入输出范围问题。

如果你照着上面的方法刷完了800+,你应该不会被任何面试中的coding难倒了,你也不用求各种面筋了。我自己体会也是如此,没有看任何面筋,面了包括doordash,square在内的6-7家公司,所有的coding都轻松搞定,把他们的follow-up 全部代码实现。

接着就来到了面试感悟,即使coding如有神助,也不见得能拿下面试。楼主面的都是senior+职位,系统设计和behavior question更重要。而面挂的两家的feedback也都是coding有亮点但是系统设计不够强。所以在面试准备过程中分配足够的时间给系统设计对于面senior+职位至关重要。系统设计及behavior question,我会另开一篇来具体写。这里先起个引子。

有人可能会问,哪有这么多时间去刷题。我想说,有。你只要目标够坚定,你就有时间。每天3道题,至多一个半小时就搞定了。并且300道题后,你刷题的速度会有质的飞跃。所以,万事开头难,一旦你熬过了开始的煎熬期,慢慢的你会有ac题目的快感,到那时候,不经意间,你可能就800+了。所以,每天坚持几道题,量变就会成质变。



补充内容 (2021-06-18 22:11 +8:00):
统一回复下常见问题
1. 刷题多久
严格说,从17年中开始,当时基础弱,一道题可能花上几个小时才能明白,但基本坚持每周10道题。18年有两三个月集中刷了2-3百。后来是偶尔集中刷。所以可能不太适合马上要面试的同学。

补充内容 (2021-06-18 22:16 +8:00):
2. 高频题或分类刷?
如果是针对某公司,高频题效果很好。平时练习,用分类的方式,可以这么做:每个类别刷10题后,总结,再随机或顺序刷来训练自己对题目类别判断的敏感度,是个不错的练习方式。仅供参考。

补充内容 (2021-06-19 01:26 +8:00):
3. 很多人问为什么呆了两年离开g
首先G很好,WLB一流,我们组尤其注重,有很多no-meetig day,也经常给额外假期。离开主要原因是之前被recruiter看穿我想去g,压级别又压offer,在g升5时间略长,而楼主比较care level

补充内容 (2021-06-19 05:35 +8:00):
文中承诺的,第二篇系统设计总结:https://www.1point3acres.com/bbs/thread-771667-1-1.html

补充内容 (2021-06-22 06:32 +8:00):
第三篇也是最后一篇,behavior question总结:https://www.1point3acres.com/bbs/thread-772424-1-1.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x

评分

参与人数 100大米 +173 收起 理由
枫子吟 + 1 赞一个
andrewzjl + 1 给你点个赞!
北辰一 + 2 很有用的信息!
cecr + 2 很有用的信息!
Britneyajulie + 1 划重点 每个类别十个题!
EthanPan + 1 赞一个
orangee + 1 赞一个
caicabbage + 1 赞一个

查看全部评分


上一篇:请问这样写问题出在哪里?
下一篇:求问一个狗家现场面试的类似题刷题网题号

本帖被以下淘专辑推荐:

yuanyao8855 2021-6-19 03:33:54 | 显示全部楼层
本楼: 👍   100% (30)
 
 
0% (0)   👎
全局: 👍   100% (86)
 
 
0% (0)    👎
其实刷题不需要 什么套路 坚持就完事了

我一年前 连什么是 binary search 都不知道, 每天晚上 10点小孩睡后 刷到2,3点。

最近终于上岸了, 歇了 2周,没刷 又开始手痒了。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x

评分

参与人数 16大米 +26 收起 理由
agign + 1 很有用的信息!
youling_tong + 1 给你点个赞!
kang1415926 + 1 给你点个赞!
girllily4 + 1 很有用的信息!
aaron_lam + 3 赞一个!
charlesorion + 1 赞一个
红A + 5 给你点个赞!
14417335 + 1

查看全部评分

回复

使用道具 举报

本楼: 👍   90% (10)
 
 
9% (1)   👎
全局: 👍   88% (2334)
 
 
11% (305)    👎
我觉得前300题不如高频300题 或者按照类别啥的 掌握套路很重要
在下愚见啊 请楼主指教

补充内容 (2021-06-19 02:15 +8:00):
这还能down我的 是什么人啊。。。

评分

参与人数 3大米 +5 收起 理由
wanglaibei + 3 给你点个赞!
charlesorion + 1 赞一个
14417335 + 1

查看全部评分

回复

使用道具 举报

本楼: 👍   100% (8)
 
 
0% (0)   👎
全局: 👍   100% (32)
 
 
0% (0)    👎
期待LZ接下來講系統設計跟BQ

评分

参与人数 1大米 +1 收起 理由
14417335 + 1

查看全部评分

回复

使用道具 举报

本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   97% (233)
 
 
2% (7)    👎
受教受教 感谢楼主
回复

使用道具 举报

开心的猪 2021-6-18 09:08:59 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   96% (1787)
 
 
3% (74)    👎
像楼主学习
回复

使用道具 举报

xiaobogaga 2021-6-18 09:12:32 来自APP | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   100% (1)
 
 
0% (0)    👎
向楼主学习
回复

使用道具 举报

山上 2021-6-18 09:43:37 来自APP | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   0% (0)
 
 
0% (0)    👎
向楼主学习
回复

使用道具 举报

 楼主| Upstairs 2021-6-18 09:55:39 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   100% (370)
 
 
0% (0)    👎
一个绝望的学渣 发表于 2021-6-18 08:42
我觉得前300题不如高频300题 或者按照类别啥的 掌握套路很重要
在下愚见啊 请楼主指教

同意。我是18年就开始刷完了前300道题,当时也不知道高频在哪。。
现在如果有总结了高频300题 确实应该会事半功倍。按类别刷也是个非常有效的方式,我其实中间300-500就有一段时间是按类别来的,每个类别,dfs,bfs,queue,stack,trie tree,binary tree,graph, binary search,等各刷了10道题。这点多谢你提醒,我都忘了。

评分

参与人数 2大米 +2 收起 理由
girllily4 + 1 给你点个赞!
14417335 + 1

查看全部评分

回复

使用道具 举报

ysh571 2021-6-18 10:10:28 来自APP | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   88% (84)
 
 
11% (11)    👎
Upstairs 发表于 2021-06-17 18:55:39
同意。我是18年就开始刷完了前300道题,当时也不知道高频在哪。。
现在如果有总结了高频300题 确实应该会事半功倍。按类别刷也是个非常有效的方式,我其实中间300-500就有一段时间是按类别来的,
请问高频三百题是指按frequency前300刷么

评分

参与人数 1大米 +1 收起 理由
14417335 + 1

查看全部评分

回复

使用道具 举报

qinshimingyue 2021-6-18 10:20:39 | 显示全部楼层
本楼: 👍   100% (2)
 
 
0% (0)   👎
全局: 👍   99% (521)
 
 
0% (2)    👎
楼主厉害,不面试就没有动力刷题了。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表