如果只说数据结构和算法的话,肯定会有《算法导论》这个回答。
但是就算完全看完《算法导论》,很多 LeetCode 题目应该还是不会做吧?
比如说有些用到单调栈的数据结构来解题的,《算法导论》中有吗?
我确实不清楚,不然也不会问这个问题了,下同。
比如有些使用滑窗思想的(双指针、快慢指针),
比如求解 [最长子序列] ,将暴力 O(n^2) 解法,通过 Patient Sorting 算法,降为 O(nlogn),
等等等...
当然,从刷题可以逐步地接触到这些算法;
但是从我个人的角度触发,刷题接触算法太零散了,就算将使用相同的数据结构、算法、思路放到一起归类, 还是很零散,就感觉有些看到某个算法,你不知道这个算法和其它算法有什么“血源”关系。
因为,我感觉一个没学过的算法,不肯能是从石头里蹦出来的吧?
重归和某些其它算法有一些什么逻辑关系。
所以,我的意思就是,基于类似这中逻辑关系脉络,来系统性地学习数据结构与算法,有什么资料、途径和方法吗?
1
Itoktsnhc 2022-04-07 13:19:29 +08:00 1
https://oi-wiki.org/
然后还看 AcWing 的一些视频 |
2
Itoktsnhc 2022-04-07 13:20:32 +08:00
@Itoktsnhc 我是为了刷 LeetCode 效率高点,所以买了 Acwing 的基础课、提高课和 leetcode 相关的
|
3
jiezhi 2022-04-07 13:24:50 +08:00
Leetcode 里 Explore 不错啊,按主题练习也有讲解。然后再结合着书巩固。
但总会有书里涉及不到的知识点,再结合题解学习。 |
4
xiaochangchang 2022-04-07 13:42:24 +08:00 1
推荐台湾师范大学网站 演算法笔记: https://web.ntnu.edu.tw/~algo/
“就算完全看完《算法导论》,很多 LeetCode 题目应该还是不会做吧?”——是的没错,如果是学 ACM 有关的,还是要多做题。 “但是从我个人的角度触发,刷题接触算法太零散了”——完全正确。到哪里系统地了解整个脉络呢?很多 ACM 的前辈都是比较乐于分享的,可以搜他们的博客来了解学习路线。我随便翻了一个供你参考: https://www.cnblogs.com/qscqesze/p/4363195.html |
5
MoYi123 2022-04-07 14:59:23 +08:00
推荐一个 B 站 up 我是小蜗蜗
现在主要有 2 个人在发视频, 一个是施韩原, 一个是杜瑜皓,你网上查一下就知道他们有多 nb 了. 可以考虑去报名参加一下他们组织的课程. |
6
soupu626 2022-04-07 15:16:52 +08:00
《算法竞赛入门经典》 俗称紫书,基本就是针对竞赛的书了
|
7
soupu626 2022-04-07 15:22:51 +08:00
https://oi-wiki.org/ 还有这个也适合查阅
|
8
Volekingsg 2022-04-07 15:39:09 +08:00
还有《挑战程序设计竞赛》,个人觉得写的是最清楚的,代码风格也好
|
9
aneostart173 2022-04-07 16:32:43 +08:00
多练多想。
|
10
dialtcp 2022-04-08 05:44:53 +08:00 via Android
《算法竞赛进阶指南》,看书名是进阶,其实是入门和进阶都可以看的好书,可以配合 acwing 课程服用
|
11
angryfish 2022-04-08 08:49:21 +08:00 1
作为曾经的 acm 渣渣,个人觉得这玩意真的在努力的基础下,离不开天赋。推荐刘汝佳系列的数。
|
12
workingonescape 2022-04-08 14:14:34 +08:00
@Itoktsnhc acwing 上好像是 c 语言写的答案。。。
|