这门课的主题是算法刷题,面向的是刚接触算法、或者刷了几十道题仍然找不到节奏的人。它要解决的不是"不懂算法思想",而是更实际的问题:明明看过讲解,自己动手就卡住;题目换个问法就不会做;刷题量上不去,刷过的题也记不住。如果你正处在这个阶段,这套资料值得先了解清楚再决定要不要投入时间。 它适合什么基础,不适合什么基础 从资料的组织方式看,它默认你已经会一门编程语…
这门课的主题是算法刷题,面向的是刚接触算法、或者刷了几十道题仍然找不到节奏的人。它要解决的不是"不懂算法思想",而是更实际的问题:明明看过讲解,自己动手就卡住;题目换个问法就不会做;刷题量上不去,刷过的题也记不住。如果你正处在这个阶段,这套资料值得先了解清楚再决定要不要投入时间。
从资料的组织方式看,它默认你已经会一门编程语言,能写循环、数组、函数这些基本结构,但对常见数据结构的操作还不熟练,对递归、动态规划这类思路只有模糊印象。如果你连语法都要现查,学起来会比较吃力,建议先把语言基础补上再来。反过来说,如果你已经稳定刷过两三百道题、能独立分析中等难度题目的复杂度,这套内容的边际收益就不高了,它更像是帮你把零散的经验整理成可复用的解题框架,而不是带你冲竞赛或啃高难度题。
不要从头到尾顺着看。比较合理的做法是先看数组、字符串、链表这几类基础结构的讲解部分,把"看到题目先想什么"这个习惯建立起来,再进入栈、队列、哈希表这类工具型结构,最后处理递归、二叉树、动态规划这些需要多步推理的内容。每看完一个专题,当天就去对应的题目里挑几道自己写,写完再回头看讲解里提到的边界情况。资料里通常会把同一类题放在一起,这是它的价值所在,但前提是你自己先动手,否则只是看别人解题,效果有限。
坚持走完一轮之后,你应该能独立完成大多数基础到中等难度的题目:拿到一道题能判断它属于哪类结构、大致用什么思路、时间空间复杂度大概在什么量级,写出来的代码能通过常见测试用例,而不是靠试错碰运气。这个水平足够应对多数技术面试的算法环节,也能让你在读开源代码或看技术文档时不再被数据结构卡住。练习上建议给自己定一个可执行的数量,比如每天两到三道,宁可少而透,不要一天刷十道然后一周不碰。错题单独记下来,隔几天重做一遍,这比反复看讲解有用得多。资料本身是讲解和题目线索的集合,真正的提升来自你写代码和改代码的过程。
学有所成,前程似锦!