马欣玉
leetcode上的题目大部分是算法题,数据结构题,而在做算法题的前提是要对编程语言熟悉,这样可以在思路清晰的情况下,短时间内运用编程语言已经封装好的库,类,等给出最佳的解决办法。所以要刷leetcode的题首先要对编程语言熟悉,对数据结构熟悉,还有就是增强算法能力,怎么增强算法能力呢?到网上多查找资料,比如有的leetcode题要利用动态规划,贪吃算法,蔡勒公式,矩阵等。个人感觉门坎还是有点高的。当然,这些都是可以经过自己的努力提高和改变的,毅力很重要。
小羊看科技
- 不要在准备工作上花费太多时间。
- 不要在准备工作上花费太多时间。
如果您花太多时间学习,您将永远无法解决Leetcode / CTCI问题。相反,如果您在准备工作上花费的时间太少,就会迷失方向。重要的是您要花费适当的时间进行准备工作,以确保您不会浪费时间。
在执行任何操作之前,请确保阅读/学习以下主题。学习任何其他内容可能会浪费您的时间。有些人学习的方式超出了他们需要的方式(花式图算法,生成树,A *等),因为他们认为这将使他们成为更好的工程师。我认为那完全是浪费时间。大多数采访者自己都不记得这些话题。一旦找到理想的工作,就可以自己学习。不要浪费时间。只需关注下面的数据结构和算法,仅此而已。
数据结构
- 动态阵列
- 链表
- 堆叠与排队
- 哈希表
- 二进制搜索树
- 二进制堆和优先级队列
- 图表
算法
- 位操作和数字-差异无符号与有符号
- 排序稳定性
- 合并排序
- 快速排序
- 堆排序-就地排序以获取O(1)空间
- 二元搜寻
- 排列
- 子集
- BFS图
- DFS图
- Dijkstra算法
- 拓扑排序
![](http://p2.ttnews.xyz/loading.gif)
准备工作
一旦您对上面的数据结构和算法感到满意,请多次进行以下练习(至少2–3次),直到您可以闭上眼睛进行练习。
- 从头开始实现ArrayList
- 反向链接列表
- 使用数组实现堆栈和队列
- 用简单的哈希函数实现哈希表
- 使用邻接表实现图,然后为BFS和DFS编写函数。
- 递归和迭代地编写二进制搜索算法
- 编写合并排序算法
- 编写快速排序算法
- 使用DFS(按顺序,前顺序和后顺序-它们全部三个)和BFS二叉树。
记住常见算法的时间和空间复杂性和了解这些重要的位操作技巧。这些可能是你入门生涯中最困难的时刻。一方面,我希望你认真对待所有这一切。另一方面,我希望你意识到自己会记住并珍惜这些时刻。在获得梦想的工作之后,您实际上会错过这些艰苦的工作和努力解决算法难题的宝贵时刻。
大魔王Hacker
直接上,边做边学。可以按照由易到难的题目循序渐进,也可以按照数据结构或算法分类去练习。总之要做到,了解算法的精髓,同一类题目举一反三,触类旁通。
RampRamp
熟悉数据结构与算法
老码农农
基本的数据结构,基本的算法,去学下吧!再去学个你感兴趣的语言!如果单纯玩算法的话,去玩下python吧!简单!