刷leetcode吃力正常吗?为了避免头条用户觉得我的回答装逼,先贴一下自己的 GitHub 地址,目前 20 k star。https://github.com/MisterBooo/LeetCodeAnimation刷 LeetCode 的大局观目前主流的刷题流派有两种,一种【龟系】,一种【兔系】
刷leetcode吃力正常吗?
为了避免头条用户觉得我的回答装逼,先贴一下自己的 GitHub 地址,目前 20 k star。https://github.com/MisterBooo/LeetCodeAnimation
刷 LeetCode 的大局观《繁:觀》
目前主流的刷题tí 流派有两种,一种【龟系】,一种【兔系】。
“龟系”刷法的澳门银河精髓就是每个题目都做干净。不满足于一种解法,各种解法都写一写。这种流派适合不太急于准备算法面试的小伙(繁:夥)伴,追求算法的干净优雅。
“兔系”刷法的精髓是暴力,按照标签来刷(拼音:shuā),使用固定套路来刷。比如小吴之前分析的那道拍案叫绝的算法题,如果告《gào》诉你是标签是异或,你马上能 AC 。这都是套路。
每个标签内部可以按照 Easy 、Medium、Hard 的顺序做,算法练习是一个系统工程,不要一开始就追求难题,先熟悉熟悉套(练:tào)路,循序渐进的去《qù》做,后面所谓的(de)难题也就不在话下。
建议小伙伴第一遍刷题可以使用 【兔系《繁体:係》】 法。
看懂题【pinyin:tí】目
万事开头难,看懂题目是做好一道算法题《繁:題》最开始也是最重要的一步。
我(读:wǒ)将 LeetCode 上的题大致分为三种类型:
•考察数据结构,比(拼音:bǐ)如链表、栈、队列、哈希表、图、Trie、二叉树等
•考察基础算法[练:fǎ],比如深度优先、广度优先、二分查找、递归等
•考察基本《pinyin:běn》算法思想:递归、分治、回溯搜索、贪心、动态规划等
一些算法题目会在标题或题目描述中《拼音:zhōng》给出明确的题(繁:題)目类型信息,比如二叉树的重建、链表的反转。
而有一些题目中则在条件(练:jiàn)中给予暗示 :
•设计一个 O#28nlogn#29 直播吧的算法(分治:在一颗搜索树中完成任务《繁体:務》,对于数据排序)
•给定一个有【读:yǒ幸运飞艇u】序数组(二分法)
•无需考虑额外的空间(用空间(繁体:間)换时间上的优化)
•数据规模《pinyin:mó》大概是 10000(O#28n^2#29就可以)
•问题可以被递归解决(繁体:決)(动态规划)
无论怎《练:zěn》样,当你拿到一道算法题的(拼音:de)时候,希望你能先去弄明白这道题目要考察的是(读:shì)什么,是简单的数据结构还是复杂的算法思想。
先去理《pinyin:lǐ》清题目背后解法要用的技术,这样[繁:樣],这道算法题【练:tí】目才有做下去的可能。
不要忽视暴力解法
一般来说,BAT 等大厂的算法面试题基本上都是 Medium 级别及以下,并希望面试者能在(拼音:zài) 20 分钟以内给出一yī 个「相对(读:duì)正确」的回答。
为什么澳门新葡京说[拼音:shuō]是 相对正确 ?
每一道算法题得(dé)解法都有很多种,并不是说你(读:nǐ)没有给出[繁体:齣]完美解或者最优解你就是错的。
“正确《繁体:確》” 本身是一个相对概念。
在算法面试或者平时的算法练习时,如果没有(pinyin:yǒu)头【tóu】绪,可以尝试使用暴[拼音:bào]力解法。
(不要忽视暴力解法。暴力解法通常是思考的起点{练:diǎn}。)
当你使用了暴力解法之后,可[kě]以与面试官进行沟通优化(pinyin:huà),把这个过程看作是和面试官一起探讨一个问题的解决方案的过程,这也可以让面试官了解你的思考问题的方式。这也是一个“正(练:zhèng)确”的回答方式。
先实现功(练:gōng)能再去优化。
Done is better than perfect 。
实【shí】际编写
到这一步就是算法的落地了:将上面的思考结果(练:guǒ)思路转换为代码。
在编写的过程中需要注意题目中的边界条件,比如数[繁体:數]组是否为空,指针是否为 NULL;同时也《yě》要注意代码的规范性:变量名,模块化,复用性。
做好总结{繁体:結}
一定要做好总结,特别是当没有解出题来,没有思路的时候,一定《拼音:dìng》要通过结束阶段的总结来反思犯了什么错误。解出来了也一定要总结题目的特点,题目中哪些要素是解出该【pinyin:gāi】题tí 的关键。不做总结的话,花掉的时间所得到的收获通常只有 50% 左右。
在题目完成后,要特别注意总结此题最后(繁体:後)是归纳到哪种类型中,它在这种类型中的独特之处是什么。经(繁:經)过总结,这样题目才会变成你在此问题域中的积累。
做好总结,让每[拼音:měi]道题都有最大的收《练:shōu》获。一个gè 月之后自己的状态应该会有很大变化。[1]
最后,承认刷 LeetCode 很吃力很正常《练:cháng》
你我都是普通的程序员,不(读:bù)像那些玩 ACM,拳打 LeetCode,脚踩剑指 offer,我们得(读:dé)接受现实:刷题,就是很痛《练:tòng》苦很打击的过程。
但,一遍一遍的刷,多刷一题就多掌握一题[拼音:tí],你总会比别人更强一点。
大家(读:j世界杯iā)一起加油:)
欢(繁体:歡)迎关注「五分钟学算法」,和程序员小吴一起来学算法!
本文链接:http://21taiyang.com/SoccerSports/2867837.html
leetcode题《繁:題》库转载请注明出处来源