当前位置 博文首页 > Linux猿:如何学习数据结构与算法?过来人的建议!!!(二)【

    Linux猿:如何学习数据结构与算法?过来人的建议!!!(二)【

    作者:[db:作者] 时间:2021-09-17 09:05

    ?上一篇:如何学习数据结构与算法?过来人的建议!!!(一)【方法篇】对如何打基础进行了介绍,接下来就应该是实践的提升啦!赶紧看一下吧!

    一、实践提升

    实践提升可以通过许多的方法,比如:做项目,做练习题等。

    我认为最实用、最直接、最快速的方法就是刷 ACM 算法题目,每个题目都会针对一个或多个算法进行考察,每道题目后台数据量足够大,可信度高。

    温馨提示:在做题过程中遇到不会/不懂的知识点要学习总结哦!可以通过写博客的形式记录自己的成长。

    下面就推荐几个OJ,大家可以去上面做题:

    北京大学 POJ:

    ????????北京大学POJ

    杭州电子科技大学 HDOJ:

    ? ? ? ??杭州电子科技大学HDOJ

    浙江大学 ZOJ:

    ????????浙江大学ZOJ

    国外 UvaOJ :

    ????????国外UvaOJ

    LeetCode 平台

    ????????LeetCode 平台

    二、做题技巧

    暴力大法好,可不要贪杯哦!在做每一题的过程中,不仅要 AC 题目,也要注意分析时间和空间复杂度,有的题目可以用暴力解决,也可以用更优的方法解决,尽量优化算法,优化时间和空间复杂度!

    在完成编码,测试数据的时候,不仅要通过测试样例,自己还需要出多组数据测试,因为后台还有很多数据,你只有通过了后台的所有数据才算你通过。

    测试数据可以这样出:最小的情况(下边界)、最大的情况(上边界)、中间情况、其它特殊情况等,这样一般是比较稳妥的方法。

    做题过程如果遇到不会的知识点,可以自行学习一下,然后通过博客记录自己的学习过程,这样记忆更加深刻,还可以让其它的小伙伴看到你的分享。

    我从接触ACM不久就开始使用博客记录自己的学习过程,到现在也有 8 年多了。

    三、编程工具推荐

    1. VSCode

    VSCode 是由微软开发的免费代码编辑器,支持很多功能,比如:代码调试、内置了Git 版本控制功能、代码补全(类似于 IntelliSense)、代码片段和代码重构等。

    还支持用户个性化配置,例如改变主题颜色、键盘快捷方式等各种属性和参数等,强烈推荐!

    图1 VSCode 首页界面
    cs