互联网技术笔试总通不过?leetcode刷对了么

原创
小哥 2年前 (2023-05-24) 阅读数 35 #大杂烩

转自:http://36kr.com/p/5084645.html

Leetcode甚至无法使用拼图工具的程序员

编者按:本文摘自逆行求职(ID:nixingjihua)。

对于所有寻找技术岗位的童鞋来说,有一件事是他们梦寐以求的【Leetcode】甚至无法使用拼图工具的程序员。

哲学是世界观和方法论的统一,是具体科学知识的总结和总结

今天,逆行的统治者将带你进入世界观和方法论”leetcode”

leetcode之世界观

什么是leetcode

简单地说,leetcode它是美国的在线编程网站,收集来自大公司的经典算法面试问题。用户可以选择不同的语言进行在线代码编写、编译和调试。

Leetcode目前有450问题(依稀记得去年340多个难度级别,分为三个级别easy、medium、和hard。这些问题大致可以分为两类:

1基本算法知识。

这些问题中有大量的算法问题,解决它们是一个例行公事,不使用递归(比如深度优先)DFS广度优先BFS)是使用动态规划(Dynamic Programming)或拆分和搜索(Binary Search)或回溯(Back tracing)或分而治之的方法(Divide and Conquer),以及大量的二叉树、数组、链表、字符串hash表操作。通过做这些问题,你可以对最基本的算法思想有一个非常扎实的理解和训练。

2编程问题。例如:atoi,strstr,add two num、括号匹配、字符串乘法、通配符匹配、文件路径简化、Text Justification反转词等等,这些问题Edge Case,Corner Case有很多。这些问题在你做之前需要仔细考虑。如果你犯了一个小错误,会有几个case它让你感到难以忍受,如果你不小心,它会让你的代码又臭又长,使其无法阅读。通过做这些问题,你可以很好地训练自己考虑各种情况和控制程序代码(实际上是状态变量)的组织。

为什么一定要这样leetcode

Leetcode它是一种专注于算法的工具,在算法测试的书面面试中遇到原始问题的概率可以认为非常高:

@飞龙:面向面试的算法,我觉得没什么比leetcode有更合适的训练方法。短期刷牙也非常有用。如果您对代码有感觉,一些聪明的解决方案一目了然就会令人难忘。

@anonymity参加过一些公司笔试,看到了leetcode原始或近似问题。最后,来自公司美国总部的软件工程师offer。学生的项目经验有限,只能参加算法考试。滚动问题非常有用。

@yuquan wang:

会leetcode可能无法服用offer

不会leetcode基本上不可能得到它offer.

leetcode之方法论

简而言之,它是,leetcode我应该如何刷它?

回答问题的顺序可以根据不同的难度级别进行练习。第一easy练习完题,我会更上一层楼medium,最后的hard根据自己的能力去做。广度先练习将使您快速掌握大部分问题类型,以便您可以自信地应对突如其来的面试笔试需求,并避开尚未练习的领域。

不错,不是吗。

当然,如果按数字回答问题太无聊,也可以按Tag使用示例进行练习,例如查看链表的内容,然后选择Linked List这部分的23完成每个问题后,您可以总结常用的方法和数据结构构建方法。Tag分类在网页右侧,如图所示:

不过按Tag来刷刷,或者你可能在习惯性思维下思考Tag算法。如138. Copy List with Random Pointer(深拷贝链表),Tag:Hash Table。尽管是一个hard问题是,但已经提示hash无论表是什么,人们都会想到建立映射关系(目前没有使用最佳解决方案)hash table)。

最后,提供一个全面的方法,即Tag根据分类中的不同难度级别刷题,提供广度和深度。

我们还想给你一些提示

01 善用Github

很多人会同时做Leetcode在问题的一边Github上repo这不仅记录了一个人解决问题的想法,而且便于搜索。许多刷子Leetcode专家,他们的答案也是用自己的写的Github您也可以通过Github成功找到他们。

02 善用Leetcode的讨论区

同一个问题往往不止一种解决方案,甚至思路和方法也可能完全不同。比如这位学生说的,“一边刷,感叹天外有天堂,比如简单的道int array只有一个数字出现一次,而所有其他数字出现两次。查找只出现一次的数字。查看讨论区的答案是element XOR立即起身敬拜” 所以对于一般简单的问题,也要看讨论区优秀的答案,毕竟提高自己的算法水平才是正当的目标。

重点,90%打开同学们不知道的讨论区的正确方法:

从每个问题的底部开始Discuss点击按钮是每个问题的相应讨论!

03 手动编写代码的能力 力

许多学生是Leetcode上面的文章引起了轰动,但在书面采访中,面试官拿出了一张纸A4白皮书可能会让人不知所措,需要半天的时间才能更改、绘制和书写不完整。此时,手动编写代码的能力特别突出,无论你是先编写代码并在网页上键入,还是代码AC(通过)后,再次从内存中写入。徒手编码的能力值得训练,这也是你整体思维和架构能力的体现。

04 充分利用碎片化的时间

许多学生由于实习或其他原因无法投入大量时间刷牙leetcode这是实习/工作/研究僧侣提供了一个“每天一个问题的时间表”:

1早上出门前,快速阅读一个问题。

2.在拥挤的交通工具上,超越自我,进行“冥想”。

  1. 题目so easy通过手机提交。

  2. 短时间内无法清关?所以当你到达公司时,继续在脑海中思考/在实验室中,基本答案可以在计算机上手写。

  3. 如前所述,将想法和解决方案集成到github上。

  4. 晚上睡觉前,反思一下它是否是最佳解决方案,如果有时间就看看discuss没时间,我自己整理好了解决方案,脑海中涉及到的知识点再过一遍。

05  菜鸟小白特殊技能专栏

对于基础薄弱的初学者,逆行尺不建议遵循前面指示的难度级别/tag进行问题刷牙操作可能会受到思维线索的影响,并可能导致效率降低。

第一刷,第一次征服array,string,tree,linkedlist,math这五个tag优点在于能够快速巩固数据结构的知识,同时避免思想线索,也许还可以掌握一些数据结构的小技术。

每个tag在内部,根据easy-medium-hard按顺序做,这样第一天刷牙10道easy熟悉此数据结构后,一天内仍可刷新5解决疑难问题,前期不会受挫,在回答问题时会培养“满足感”。

完成此序列后,您已经完成了它25%上面的进度条将从hard向easy做测验一开始可能看起来有点滥用,但后来,它会非常有效。完成第一遍后,您可以愉快地完成整个过程tag刷题round 2了~

这是问题的免费答案

为了保证大家回答问题的心情,我们准备并分析了大部分问题的答案。画作风格如下:

更多问题的答案可以集中在逆行求职上(id:nixingjihua),回复leetcode获得。

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门