非计算机专业,想刷leetcode,请问在此之前需要做什么准备?

马欣玉


leetcode上的题目大部分是算法题,数据结构题,而在做算法题的前提是要对编程语言熟悉,这样可以在思路清晰的情况下,短时间内运用编程语言已经封装好的库,类,等给出最佳的解决办法。所以要刷leetcode的题首先要对编程语言熟悉,对数据结构熟悉,还有就是增强算法能力,怎么增强算法能力呢?到网上多查找资料,比如有的leetcode题要利用动态规划,贪吃算法,蔡勒公式,矩阵等。个人感觉门坎还是有点高的。当然,这些都是可以经过自己的努力提高和改变的,毅力很重要。


小羊看科技


  1. 不要在准备工作上花费太多时间。
  2. 不要在准备工作上花费太多时间。

如果您花太多时间学习,您将永远无法解决Leetcode / CTCI问题。相反,如果您在准备工作上花费的时间太少,就会迷失方向。重要的是您要花费适当的时间进行准备工作,以确保您不会浪费时间。

在执行任何操作之前,请确保阅读/学习以下主题。学习任何其他内容可能会浪费您的时间。有些人学习的方式超出了他们需要的方式(花式图算法,生成树,A *等),因为他们认为这将使他们成为更好的工程师。我认为那完全是浪费时间。大多数采访者自己都不记得这些话题。一旦找到理想的工作,就可以自己学习。不要浪费时间。只需关注下面的数据结构和算法,仅此而已。

数据结构

  • 动态阵列
  • 链表
  • 堆叠与排队
  • 哈希表
  • 二进制搜索树
  • 二进制堆和优先级队列
  • 图表

算法

  • 位操作和数字-差异无符号与有符号
  • 排序稳定性
  • 合并排序
  • 快速排序
  • 堆排序-就地排序以获取O(1)空间
  • 二元搜寻
  • 排列
  • 子集
  • BFS图
  • DFS图
  • Dijkstra算法
  • 拓扑排序

准备工作

一旦您对上面的数据结构和算法感到满意,请多次进行以下练习(至少2–3次),直到您可以闭上眼睛进行练习。

  • 从头开始实现ArrayList
  • 反向链接列表
  • 使用数组实现堆栈和队列
  • 用简单的哈希函数实现哈希表
  • 使用邻接表实现图,然后为BFS和DFS编写函数。
  • 递归和迭代地编写二进制搜索算法
  • 编写合并排序算法
  • 编写快速排序算法
  • 使用DFS(按顺序,前顺序和后顺序-它们全部三个)和BFS二叉树。

记住常见算法的时间和空间复杂性和了解这些重要的位操作技巧。这些可能是你入门生涯中最困难的时刻。一方面,我希望你认真对待所有这一切。另一方面,我希望你意识到自己会记住并珍惜这些时刻。在获得梦想的工作之后,您实际上会错过这些艰苦的工作和努力解决算法难题的宝贵时刻。


大魔王Hacker


直接上,边做边学。可以按照由易到难的题目循序渐进,也可以按照数据结构或算法分类去练习。总之要做到,了解算法的精髓,同一类题目举一反三,触类旁通。


RampRamp


熟悉数据结构与算法


老码农农


基本的数据结构,基本的算法,去学下吧!再去学个你感兴趣的语言!如果单纯玩算法的话,去玩下python吧!简单!


分享到:


相關文章: