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