希望可以给刷算法题的新人一点点小建议,本人也是一位小萌新如果有不对的地方或者别的建议可以评论区里提出
关于选择什么编程语言
个人推荐C++,并且在用Java刷过一段时间后更加感觉到C++的强大之处,C++有很多强大的STL标准库(库中包含了常用的数据机构和基本算法)。
编译器:
Lightly 这个无需什么复杂配置 有网就可以 也有网页版的
Dev c++
vs
附一下C++语法的参考手册
https://zh.cppreference.com/w/%E9%A6%96%E9%A1%B5
新手在最开始应该做什么
学习相关视频或者书籍
我个人认为不要开始就刷题,这样很容易受挫,我认为可以从视频学习开始,然后通过视频学习了解一些算法,并且跟着视频练习。
其实在刷题的时候,我们可能会遇到对一道题没有任何思路的情况,这可能会让我们产生自我怀疑,但是其实这可能并不是我们个人能力不行、智商不行什么的,只是我们可能压根不了解这道题所涉及的知识,就像让你做一道需要用栈完成的题,你压根不知道什么是栈,栈可以干什么。
关于视频可以去b栈搜一些数据结构的视频(有很多)
相关的刷题网站
洛谷 https://www.luogu.com.cn/
力扣 https://leetcode.cn/
蓝桥杯官网 https://www.lanqiao.cn/cup/
cf(codeforce) https://codeforces.com/
我个人是在洛谷刷题,刷过一段时间力扣,相对来说我个人感觉洛谷的题可能较为难一些,但是洛谷是需要你自己提供输入和输出就比较符合一些比赛的风格 而且洛谷刷题 + cf打比赛效果会更好
个人的一些建议
算法很难短时间速成,而且会遇到很多挫折,他会让你怀疑自己是否适合刷题,会出现想了几个小时没有思路,调了几个小时还有各种bug最后无奈看题解。
最开始刷题时,随着我们开始认识开始了解,并且能够解决一些较为简单的题时,会使我们逐渐有成就感。
当遇到瓶颈时这是我们会的很少,很容易遇见各种各样的难题,会让我们受挫,感觉自己什么也不会。
不过通过根深一步的学习会使我们可以理解之前搞不明白,和一些有难度的。这会继续提高我们的成就感。
随着接触的题越来越多,接触的难题越来越多,这又会使我们· 自我感觉下降,会让我们自我怀疑,感觉越学越差,感觉不如之前,其实这时会的已经很多了。我们只需要找到合适方法坚持下去。
而最后迎接我们的是不断的提升。