关于问题非计算机专业,想刷 leetcode,请问在此之前需要做什么准备?一共有 5 位热心网友为你解答:
【1】、来自网友【体悟闭嘴的酣畅淋漓】的最佳回答:
直接上手!准备越久,越没自信了,没了新鲜感,征服欲也会降低!就像谈恋爱,看着合适就去接触,软磨硬泡总能拿下来,天天偷看算怎么回事?!
随便从最简单的开始做,不懂就专注一个问题学习死磕,我也是最近才知道力扣,封城的两个月里把 Python 语法学完,数据结构也就仅仅知道个列表字典元组集合,大根堆小根堆,栈,链表等增删改查,现在刷了十道题了,当然都是最简单的,有几道题居然在时间复杂度上打败了 90%以上的人[呲牙],我就坚持一条,自己做出来之前绝对绝对不看题解,争取自己搞明白每一道做过的题的底层逻辑,配合计算机运算逻辑体会算法的美妙!
做完后再看看别人写的,所有题一题多解我还做不到,但是可以做尝试,目前只有两道题做过两套算法方案,都表现一般,经验丰富了以后肯定会更好一些,顺便再看看其他语言的解法,熟悉熟悉他们的语句格式,以后需要转起来也方便。
前天做一道罗马数字转换阿拉伯数字的题,到半夜自己研究了五个多小时才解出来,成就感超级好。
作为一个纯种的文科生转码,自我要求不高,心态很重要,学习是快乐的,每次学一点,都能让我兴奋好久,看懂一个算法逻辑,瞬间汗毛倒立,看到自己网站模板一点一点丰满起来,也是爽歪歪!
一边学 Django,一边力扣刷题,一边死磕算法,学会了的经典排序程序每天默写一遍,半个月时间,什么冒泡,插入,选择,快排,堆排序,归并,桶排序,希尔排序通通搞定,同时我的 Django 框架的网站也快学完了,以后会在网站上贴自己的学习过程,以后回看,就像看我儿子一点点长大。
目标明确,心态放正,快乐刷题,快乐学习!
顺便说一下自己的学习感悟,听说有些程序员解决问题算法时,能像老和尚那样入定,那简直神了,专注力,是学习的第一能力。心无旁骛,定能事半功倍!
【2】、来自网友【你看我独角兽吗】的最佳回答:
谢谢邀请,在开始 Leetcoding 之前,你需要学习/整理重要主题列表。如果不这样做,最终将浪费时间。请记住以下两个规则:
- 不要在准备工作上花费太多时间。
- 不要在准备工作上花费太多时间。
如果您花太多时间学习,您将永远无法解决 Leetcode / CTCI 问题。相反,如果您在准备工作上花费的时间太少,就会迷失方向。重要的是您要花费适当的时间进行准备工作,以确保您不会浪费时间。
在执行任何操作之前,请确保阅读/学习以下主题。学习任何其他内容可能会浪费您的时间。有些人学习的方式超出了他们需要的方式(花式图算法,生成树,A *等),因为他们认为这将使他们成为更好的工程师。我认为那完全是浪费时间。大多数采访者自己都不记得这些话题。一旦找到理想的工作,就可以自己学习。不要浪费时间。只需关注下面的数据结构和算法,仅此而已。
数据结构
- 动态阵列
- 链表
- 堆叠与排队
- 哈希表
- 二进制搜索树
- 二进制堆和优先级队列
- 图表
算法
- 位操作和数字-差异无符号与有符号
- 排序稳定性
- 合并排序
- 快速排序
- 堆排序-就地排序以获取 O(1)空间
- 二元搜寻
- 排列
- 子集
- BFS 图
- DFS 图
- Dijkstra 算法
- 拓扑排序
准备工作
一旦您对上面的数据结构和算法感到满意,请多次进行以下练习(至少 2–3 次),直到您可以闭上眼睛进行练习。
- 从头开始实现 ArrayList
- 反向链接列表
- 使用数组实现堆栈和队列
- 用简单的哈希函数实现哈希表
- 使用邻接表实现图,然后为 BFS 和 DFS 编写函数。
- 递归和迭代地编写二进制搜索算法
- 编写合并排序算法
- 编写快速排序算法
- 使用 DFS(按顺序,前顺序和后顺序-它们全部三个)和 BFS 二叉树。
记住常见算法的时间和空间复杂性和了解这些重要的位操作技巧。这些可能是你入门生涯中最困难的时刻。一方面,我希望你认真对待所有这一切。另一方面,我希望你意识到自己会记住并珍惜这些时刻。在获得梦想的工作之后,您实际上会错过这些艰苦的工作和努力解决算法难题的宝贵时刻。
【3】、来自网友【宁教授网络空间元宇宙】的最佳回答:
如果你连最基本的数据结构,例如链表,队列,栈,二叉树都没有接触过,那么我是不建议你去 leetcode 刷题的,所以我上面先说了先入门一下数据结构与算法,当你学习了这些基础的数据结构之后,其实已经具备了刷题的能力了。
另外建议刷题切勿心急,按 tag 刷,按一题多解刷,重复刷
【4】、来自网友【跟黄哥学编程】的最佳回答:
先通过一种编程语言学会解决小的问题,再学数据结构与算法,再刷 leetcode。
特别着急就业的,可以边刷 leetcode 边学数据结构与算法。但前提是已经会一门编程语言。
【5】、来自网友【隔壁小黑】的最佳回答:
别想太多,刷就完事了
以上就是关于问题【非计算机专业,想刷 leetcode,请问在此之前需要做什么准备?】的全部回答,希望能对大家有所帮助,内容收集于网络仅供参考,如要实行请慎重,任何后果与本站无关!