本科算法经验
- 本科期间学习过数据结构,算法设计与分析相关课程
- 有一些代码量,做过一些网站,小程序,系统
- 大三寒假曾备战过一个月的算法,来应对某个比较水的算法比赛
回顾总结
现在回想,谈一下我当时的情况
- 当时寒假备战不够深入,整个过程有点像是吃快餐,导致对算法的认识仍然不够透彻,吃不透算法思想,最后效果没有达到预期的结果
- AC完一道题目之后不会举一反三,仅仅是做完了这道题目,导致会的永远都会,不会的永远都不会
- 拿到题目后不会分析题目,想到什么便开始敲些什么,没有全局得考虑问题,从而进入死循环,一致在自己错误的,局部的思路中跳不出来
- 太定式思维了,尤其是完全用人的思想解决问题,觉得此题就应该怎么做,要知道编程算法是要考虑计算机该怎么做
- 代码能力实在不够!C++在学校和平时应用所了解到的知识实在太浅!
结果导致大三下半学期,一遇到算法题和面试算法就慌得一批。
推倒重来
如今大四,想在算法上再提高一个层次,算法和编程是CS的基础,花些时间在上面我认为还是值得的,因此报考了2019年12月的CSPCCF认证考试。根据大佬的经验(大佬的个人空间),抱着《算法笔记》刷PAT又准备了一个多月,可能自己水平确实不够,只完完整整啃完了三章。期间不断更新CSDN,记录总结一些内容,好像自己的代码能力有了些许提高吧?看看这周末的考试就知道了!
备战期间的几个问题(随后会有修改和补充)
------------12.13----------------
- 分析问题的方法有待总结提高
个人目前认为:- 读懂吃透题目,写下标记出题目中的细节,把测试用例完完整整在脑子中过一遍
- 确定数据结构
- 整理思路:首先按人的思维分析,拿到题目后该如何解题;再转换为计算机思路进行解题
- 必要的时候,在纸上写下关键步骤如何处理(关键判断,关键循环),防止忘记或扰乱思路
- 定式思维还是不容易跳出来(想当然做题)
- 找不到最佳的数据结构,对STL容器的性能还是不够熟悉,分析不出最优处理解题的方法(分析不到位)
- 做题时要全局考虑,最要命的是,读到这一步,想到一个可能可行的解题方法,开始编程;然后读到下一步,修改之前的方法,陷入死循环
几点注意
- 千万不能想当然做题!做题时多次吃亏,要具体问题具体分析
- 要有清晰的逻辑!(要有计算机思维)问题分析,题意理解,代码处理的先后顺序要明确,必要时可以先写到纸上
目标
本次ccf全当练手熟悉题型,寒假期间系统过一遍《算法笔记》和PAT,三月份报名PAT与ccf测试自己的能力
-------------------------2019.12.18---------------------------------
对于抱以熟悉题目的态度来说,成绩还算符合预期,考试过程中几点优势,确实能明显感觉到代码能力,题目分析能力的提升,测试样例考虑比较全面,编写的测试点比较多,不怕麻烦以防万一。
当然也有几点不足,原本剩近两个小时,以为T3可以拿一部分分,但是对字符串的逻辑始终没有处理好,导致T4,T5没有时间看,下次应该注意一下题目耗费大量时间死磕的问题,有时候确实需要停下来换一换思路。
---------------------------2020.02.15记录,继续算法和毕设---------------------------
原本3月的CCF&PAT全部推迟
进度:
- 链表 2020.0219
- 搜索dfs,bfs 2020.02.26
- 树 2020.03.05
- 图论 2020.03.12
- 动规 2020.03.26
- 其他 2020.03.27
- 数论 2020.03.17
2020.04.01完成PAT乙组前50,PAT甲组前107,并将代码整理上传GitHub
---------------------------2020.04.17记录大厂笔试---------------------------
- 做了几次笔试发现自己算法能力还是有待提高,做题效率不高,思路仍然不清晰,做题时一些题目一直在思考算法,到最后还是用的暴力解法,时间也白白浪费掉了。仍需努力啊!
- 另外自己在做题时发现,总是在边做边想解题办法,但凡思路不对就要推倒重来,做题时也出现边写代码边想着优化效率问题,导致思路特别局限,只顾着眼前这一部分的,解题逻辑就不清晰了
- 还有觉得自己的思路特别固化,只知道按部就班的解题,在变通和优化上离优秀的代码差得很远