刷LeetCode的一些心得(0基础大龄转码上谷歌)

本文是一位大龄转码者通过刷上千道LeetCode题目成功入职谷歌的经验分享。强调了基础、算法和数据结构的重要性,推荐了相关书籍,并提醒初学者避免盲目刷题,建议有一定语言基础后再开始。
部署运行你感兴趣的模型镜像

我之前就是完全0基础、大龄转码,刷题上千然后进谷歌的……

这里0基础指的是没学过编程语言,没学过数据结构和算法,一上来就直接做题那种。

第一道题two sum,我显然不会做。我的笨方法就是看答案,背答案,然后默出来,就这样还是错了很多次。

然而就是这样低的起点,我把LC前300道题刷了至少3遍,累计刷题数超过1000道,最后靠刷题上岸了谷歌。(也有运气的成分,当时简单多了)

我并不鼓励大家从0开始刷题,毕竟我真的走了很多弯路,踩了无数坑。

如果能早点掌握正确的方法,我就不用刷1000道题了(虽然结果是好的)。

Leetcode/LintCode开始刷题,首先最好能具备一定的基础,包括:
(这里说一下,我一开始是用的LeetCode。遇上LintCode有活动,便宜了小几百,就试用了一下,感觉功能差不多,给大家多个选择吧)

语言基础

用于刷题的编程语言有很多,算法是通用的,不受限于语言,主流的Java或者Python都可以。
Java的优点是用的公司多,一般面试官没有不会Java的;Python优势在于语法简单,coding能节省很多时间。

算法部分

二分搜索 Binary Search 
分治 Divide Conquer 
宽度优先搜索 Breadth First Search 
深度优先搜索 Depth First Search
回溯法 Backtracking 
双指针 Two Pointers 
动态规划 Dynamic Programming 
扫描线 Scan-line algorithm
快排 Quick Sort

数据结构部分

栈 Stack
队列 Queue
链表 Linked List 
数组 Array 
哈希表 Hash Table
二叉树 Binary Tree  
堆 Heap
并查集 Union Find
字典树 Trie

如果是应对求职面试,那么可以按照下面的面试高频知识点来刷。

1
对算法题来说有两大法宝,“拿到题选什么算法”和“如何实现这个算法”,后者会更容易一些,所以可以先从实现算法开始练起(LintCode可以筛选对应知识点的分类训练)。

当然,针对面试算法,也有一些书:

《剑指 Offer》:几乎包含所有常见的、经典的面试题,是应对面试的必读书籍

《编程之美》:适合准备面试FLAG大厂时候用来刷题
2

最后,关于算法和数据结构,再推荐一些书。

1.入门系列:

《算法图解》:“像小说一样有趣的算法入门书”,主打“图解”,通俗易懂

《大话数据结构》:把理论讲得有趣不枯燥;每个数据结构和算法,作者都结合了生活中的例子,能让你有非常直观的感受。

2.教科书系列:

《数据结构与算法分析》:很多大学都拿它当作教材,非常系统、全面、严谨,适合掌握了至少一门编程语言的同学。

作者也很贴心,这本书有三种语言的版本:《数据结构与算法分析 : C 语言描述》《数据结构与算法分析 : C++ 描述》《数据结构与算法分析 : Java 语言描述》。

3.进阶之旅:

《算法导论》:有了一定基础之后,就可以开始啃这本大部头了。

4.扩展阅读:

《算法之美》:算法科普,从生活中的各种问题说起:租房、谈恋爱、老虎机、拍电影、面试、买彩票、各种排序、找停车位、寻找新药、临床试验、奥巴马拉赞助、预估电影票房等等,非常生活化,可以作为补充阅读。

《算法帝国》:同样是科普类书籍,并无涉及算法的原理与实现细节,也可以作为补充阅读。

5.殿堂级

《计算机程序设计艺术》:包含很多卷,深度、广度、系统性、全面性是其他所有数据结构和算法书籍都所无法相比。可以当做一种挑战~

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值