算法学习建议
知识在于积累,学习需要耐力。学习就像挖金矿,或许一开始毫无头绪,但转个角度、换换工具,时间久了总会找到一个缝隙。成功就是你比别人多走了一段路,或许恰恰是那么一小步。
第一个建议:多角度,对比学习。
学习算法,可以先阅读一本简单的入门书,然后综合几本书横向多角度看,例如学习动态规划,拿几本算法书,把动态规划这章都找出来,比较学习,多角度对比分析更清晰,或许你会恍然大悟。或许有同学说我哪有那么多钱买那么多书,只要想学习,没有什么可以阻挡你!你可以联系你的老师,每学期上课前,我都会告诉学生,如果你想学习却没钱买书,我可以提供帮助。想一想,你真的没有办法吗?
第二个建议:大视野,不求甚解。
经常有学生为了一个公式推导或几行代码抛锚,甚至停滞数日,然后沉浸在无尽的挫败感中,把自己弄得垂头丧气。公式可以不懂,代码可以不会。你不必投入大量精力试图推导书上的每一个公式,也不必探究语法或技术细节。学算法就是学算法本身,首先是算法思想、解题思路,然后是算法实现。算法思想的背后可能有高深的数学模型、复杂的公式推导,你理解了当然更好,不懂也没关系。算法实现可以用任何语言,所以不必纠结是C、C++、Java、Python……更不必考虑严格的语法规则,除非你要上机调试。建议还是先领会算法,写