leetcode 的算法题,难度是简单的,都做不出来。 我有点怀疑人生
1
sigma65535 2020-09-09 12:08:35 +08:00 via Android 1
做不出来,看答案,当例题。下次就会了
|
2
raaaaaar 2020-09-09 12:18:37 +08:00 via Android 11
我的目的不是做出来题,而是分析用了什么知识,分析怎么用的,分析解题思路,分析优化的可能。
|
3
q8164305 2020-09-09 12:20:42 +08:00 via Android
能看懂并且自己实现一遍就够了啊
|
4
q8164305 2020-09-09 12:21:11 +08:00 via Android
看都看不懂,那就没办法了
|
5
AllenHua 2020-09-09 12:25:41 +08:00 2
可能还是训练少了
这东西 也是要题海战术训练的 里面的思想都是可以总结出来的 做多了 应该会好很多 楼主没必要怀疑自己 你可以的 |
7
momocraft 2020-09-09 12:29:31 +08:00 4
慢慢来
|
8
TypeError 2020-09-09 12:29:36 +08:00 via Android 3
我刚做题也是这样,就是刷的不够,
同一类型刷个几题,就能明白套路了, 就是动规、贪心、栈队列、排序、二分、回溯这些模板 |
9
sealingpp 2020-09-09 12:33:50 +08:00
先买本基本数据结构入门再说
|
10
lights 2020-09-09 12:37:43 +08:00
简单题暴力解法一般都能做出来,暴力解法都不会的话,建议从买一本基础的数据结构开始
另外很多简单题有多种解法,那些多出来的更优解是很值得研究和学习的,也很有用 |
11
OHyn 2020-09-09 12:44:07 +08:00
刷的少了。
多刷,要不练出分析能力,要不练出应试能力,终归会有结果。 |
12
OHyn 2020-09-09 12:45:48 +08:00 1
看书的话可以考虑这个 https://book.douban.com/subject/19952400/,
书上的看不懂不要硬啃,同类视频多刷一些。 |
13
aminick618 2020-09-09 12:54:34 +08:00
这很正常。先从数据结构开始学习, 然后再把基本算法(二分,递归,dfs 等)搞透彻。 题做多了之后,解题思路无非就是用什么样的数据结构和算法可以比暴力解快,降低时间复杂度。当然不包括有的智力题只能看答案了。
|
14
chihiro2014 2020-09-09 13:04:13 +08:00 2
简单的不一定简单,难的真不一定难
|
15
nightwitch 2020-09-09 13:14:31 +08:00
简单题通常有暴力解法,但是简单题不一定是真的简单,可能会有更高阶的解法。
有的知识不会就是不会,没什么大不了的,人也不是生来就能算加减乘除。不会做就看答案,确保自己看过答案以后,能理解,能写出来就可以了,刷多了自然就会了 |
16
littlewing 2020-09-09 13:19:24 +08:00 via iPhone
多练习就会了,你会发现变来变去就那么几种方法
|
17
JerryCha 2020-09-09 13:21:03 +08:00
做得出 HARD 的链表但做不出 EASY 的 DP 也是正常的
|
19
cumshot 2020-09-09 13:35:35 +08:00
其实就是做的少,,
|
21
binxin 2020-09-09 13:44:59 +08:00
刷回文字符串,用了一小时把耗时从 920ms 缩短到 720ms
然后点开一看,别人的马拉车算法只要 70ms.... |
22
bluehr 2020-09-09 14:06:32 +08:00
正常,刚开始都这样,没思路,没经验,一脸懵逼。
慢慢练习后就会发现很多解题思维都是相通的,再看看别人总结的规律,重点是学习解题的思维。 这种思维在普通人身上都是练出来的,上来就会得人就那么极少部分天才 |
23
xFrye 2020-09-09 14:06:46 +08:00
刷题是一个学习的过程
|
24
TwoDogSon 2020-09-09 14:13:10 +08:00
我也是这样 换工作被迫捡起来 leetcode 现在尽量坚持每天都刷 想养成个习惯 没什么是理所当然的 宽恕自己一点~
|
25
fishCatcher 2020-09-09 14:13:50 +08:00 via iPhone 7
一开始:呜呜呜我不会做
中期:我要归纳方法,总结方法,做到触类旁通! 后期:还是背过好使。万物皆背诵 |
26
agegcn 2020-09-09 14:23:40 +08:00
刚开始不会写 正常
|
27
ghost024 2020-09-09 14:24:07 +08:00
没关系,就是解决问题而已,慢慢来就好了,我有的时候一道题能做一天:)
|
28
bonfy 2020-09-09 14:28:24 +08:00
其实就是看你肯花多少时间,当然花了时间大部分也会忘掉一大半的
你这样也蛮好,至少省了老多时间了 |
29
hikarumx 2020-09-09 15:08:49 +08:00
先边看边模仿,刷够 1000 再看看
|
30
MatthewHan 2020-09-09 15:17:49 +08:00 1
用二叉树入手递归非常不错,二叉树的题要多做一些(本来这类题也多)。bfs 、dfs 迭代模板要记一记。dfs 递归一把梭熟练了之后,排列组合、回溯、一些背包问题也可以用这个了先。
|
31
chanlk 2020-09-09 15:48:54 +08:00
多做题,做不出来就看题解. 按照 TAG 来刷,先是数组 链表 队列和栈 字符串 哈希表这些基础的,把这些 esay 的做的差不多应该就算入门了,然后到 递归 二叉树 回溯 贪心 DP 和一些高级的数据结构. 还是多做题吧,我已经做了 400 题了,media 的题还是有的会卡住,共勉..
|
32
KuroNekoFan 2020-09-09 15:50:15 +08:00
没有什么问题是一次迭代不能解决的,如果不能,就再迭代一次(
|
33
buffzty 2020-09-09 16:17:29 +08:00
@fishCatcher 几十几百年才出一个天才 优化出一个算法. 我们普通人能看懂并运用这个算法就已经算牛的了. 就像爱因斯坦写出质能方程时能看懂的都是诺奖级别
|
34
gadsavesme 2020-09-09 17:10:10 +08:00
别被那个难度忽悠了,很多简单题真的是挺难的,有的中等题和困难题还挺简单的。有时候简单做不出来挺正常的,心态放轻松多做就有感觉了。我敢保证 99%的人刚开始刷的时候都是一头包。
|
35
beidounanxizi 2020-09-09 17:12:10 +08:00
多刷 多做比你当前高一层次的题 就可以 提升
|
36
liuy1994g 2020-09-09 17:15:01 +08:00 via Android
有些题根本不是简单啊
|
37
Yiki 2020-09-09 17:19:32 +08:00
算了我脑子不好
写了五十多道了再看第一题还是不会写 没救了 还是贝多芬大法好 |
38
Jooooooooo 2020-09-09 17:20:28 +08:00
有套路的
|
39
LiuJiang 2020-09-09 17:22:14 +08:00
刷题是有套路的,简单点就是题海战术,摸清核心思想,那么相关的题都会了,举个简单的例子,例题:从数组里面里面找出符合条件的元素。如果这题做出来之后,那么跟数组相关的问题,你应该都会解了。(比较简单的数组查询、排序等)
|
40
chocovon 2020-09-09 17:27:14 +08:00 1
有些简单题类似于奇技淫巧,会就是会,不会的想破脑袋也想不到那个点上
|
41
chengkai1853 2020-09-09 18:20:40 +08:00
看答案啊,通过答案理解题。看多了就会了!
|
42
catfan 2020-09-09 18:54:41 +08:00
写代码快十年了,觉大多数算法题都不会做😂
|
43
sylxjtu 2020-09-09 19:25:01 +08:00
估计难度是按照代码量评的,直接上爆搜的题目很多都标的 hard,有些奇技淫巧题目因为代码量少反而是 easy
|
44
robinhwu2020 2020-09-09 20:16:27 +08:00
看通过率的,有些简单的通过率才 30%有些 middle 的通过率确有 50%。
还有就是把算法书多翻翻,把习题都做一篇,起码简单的通过率 50%的肯定能写了。 |
45
goodboy95 2020-09-09 20:58:32 +08:00
@binux 还真有,当时我做每日一题的时候撞到过……
现在忘了是哪道了,直接借助筛选找了几道: https://leetcode-cn.com/problems/house-robber/ https://leetcode-cn.com/problems/min-cost-climbing-stairs/ |
46
MeowOvO 2020-09-09 21:40:52 +08:00
说实话。。。貌似为了让你多做题,会把一些中等的变简单=-=
|
48
scnace 2020-09-10 00:56:26 +08:00 via Android
很正常啊 跟打游戏一样的啊 上来就打得好的毕竟都是少数 普通人都是熟能生巧 总结出适合自己的方法论就好了 ( 无非就是看了某些攻略之后可以走走捷径
|
49
kangsheng9527 2020-09-10 02:11:08 +08:00
实际项目遇到需要用到的算法会比 leetcode 要容易,因为 leetcode 相对抽象,真实项目是你一步一步往下写的。。。不一样的。。。leetcode 多看几次,一天一题即可。。。习惯了一段时间都会了。。。
|
50
jiangzm 2020-09-10 02:25:10 +08:00
简单的一般都能做出来就可以, 无非看是不是最优解而已,不断更新自己的算法思路就好了。
|
51
20015jjw 2020-09-10 03:31:11 +08:00 via Android
没事的都是菜出来的别担心
|
52
way2explore2 2020-09-10 04:40:53 +08:00 via Android
我写了一篇文章关于双指针的。
会了它,至少可以掌握十道。😁 https://tim.bai.uno/solve-all-algorithm-problems-using-2-pointers-technique/ |
53
Desiree 2020-09-10 06:53:49 +08:00
如果太简单的都做不出来,建议还是先补补语言的语法或者算法的基础。如果盲目去刷,或者给答案都看不懂,那就是基础有点堪忧,一边做题一边看基础也可以啊
|
54
fatestigma 2020-09-10 08:52:57 +08:00
算法基础可以多补一补的,前期可以看看答案和解析,毕竟目前仅指望你学算法和用算法,而不是研究算法,并不指望你凭空自己想出并写出什么看毛片( KMP )算法。
|
55
Marszm 2020-09-10 10:04:07 +08:00
你只要通关了 DP 。。。就没有难得和简单的了。。。一切算法转 DP 。。。
|
56
lihongming 2020-09-10 10:37:57 +08:00 via iPhone
不用太伤心,有些题根本不是给程序员做的,而是给数学家做的。
如果一个题,靠的是一种专用算法( KMP 之类的),而不是通用算法(堆栈递归动态等),那就跳过去吧,学会了也没啥用。 |
57
leido 2020-09-10 10:46:44 +08:00
@lihongming 字符串匹配都成了专用算法? 那你不用写代码了.
|
58
enjoyCoding 2020-09-10 10:52:50 +08:00
leetcode 是按照数据结构分的 不是难不难想
比如用数组就能做的题 如果不用考虑边界值 不考虑时间复杂度 空间复杂度 大多数都是简单 用红黑树的大多都是困难 但是难度和使用数据结构正相关嘛 并不是 所以不是你不行 不要失去信心 |
59
lewis89 2020-09-10 11:10:31 +08:00
@lihongming #56 实际上 KMP 并不快,用 hash 来做的 Rabin-Karp 比 KMP 易实现,速度也不慢
|
60
Vendettar 2020-09-10 11:11:14 +08:00
刚开始很正常,不是会不会,是熟悉不熟悉的问题,你多在里面泡一段时间,你会发现有些题你不熟悉原理但你就是能做出来。
|
61
sdushn 2020-09-10 11:12:56 +08:00
先把基本的数据结构用明白,堆,栈,数组,散列表啥的,基本简单和部分中等都能搞定
|
62
lewis89 2020-09-10 11:15:55 +08:00
@catfan #42 不会做很正常,因为通用的算法数据结构已经被封装的很好了,难以封装的 大部分也用不上,
像 DP 实际上最难的是弄出递推公式,然后通过之前的计算结果简化后面求解的问题计算规模, 但是递推公式大部分时候很麻烦,以现有的算力 + 99%大部分程序员遇到的 N 的规模,远远不如暴力求解来的划算 |
63
wangyzj 2020-09-10 11:16:11 +08:00 via iPhone
算法题都是套路
|
64
lewis89 2020-09-10 11:20:54 +08:00
@catfan #42 另外举个例子就是拓扑排序,用来求有向图是否存在环状依赖的,一个经典的例子就是课程安排,不能要求学习 A 之前要学习 B 然后又同时要求学习 B 之前要学习 A,以大部分院校排课的运算量 + 程序员的知识,我敢打赌 99%市面上的教务系统肯定是暴力校验的这个依赖逻辑的,因为大部分时候 N 很小,花俏的算法并不是一个合适选择。
|
65
vicsun2020 2020-09-10 12:34:38 +08:00 via iPhone 1
看答案能懂就行,没必要要求看题就会
看题就会的老哥一般刷了 3-400 打底的 |
66
vicsun2020 2020-09-10 12:36:12 +08:00 via iPhone
@Marszm 噗???二叉树遍历怎么转 dp
不过 dp 都会了一般算法应该都没啥问题了 |
68
lihongming 2020-09-11 05:04:22 +08:00
@leido 你都说了他是用来匹配字符串的,当然就是“专用”了。这类算法可能一部分人会经常用到,但跟编程本身已经没有太大联系了,如果不是早年有专门研究算法的人发明出来,普通程序员怕是死都想不到应该这么做。
对大多数程序员来说,掌握通用算法更重要一些,专用算法让专门做这个工作的人来掌握就可以了 |
69
Marszm 2020-09-11 09:08:20 +08:00
@vicsun2020 这个吗,那一切算法都可以转化为。。。DP 其实也是递归。二叉树遍历也是递归。。没毛病了吧。
|
70
Marszm 2020-09-11 09:08:53 +08:00
@vicsun2020 递归
|
72
Anarchy 2020-09-11 11:09:42 +08:00
easy 题一般暴力解都可以通过,优解的情况很多可以标成 medium 了。
|
75
ww050312 2020-09-11 22:10:38 +08:00
学一门算法导论当课本的课,并且学校规定不到 85+就挂科,可能就行了😅
|