刷题反思

最近刷题状态很不好,不仅在想出思路后码的慢,还总是能遇到个别case过不了,然后调试调几个小时,真是醉了。

不过总结一下,还是能发现具体的问题:
1. 首先,有时想好的思路较复杂,没有在大脑中很好的模拟一遍,匆匆码起来,发现思路有问题。这时大多只能从头来过,我靠,相当消耗激情。
2. 想好了正确的思路,但没有考虑边界条件处理,也不考虑要程序的结构性。直接开码的结果就是修改各个while和if的条件,我靠,调整来,调整去,疲乏。
3. 思路和代码逻辑流程都想好了,数据结构没有好好思考。码了一般才发现,用的这个数据结构的设计相当有问题,码起来各种别扭。我靠,不得不在修改数据结构的设计,然后不得不修改大量相关代码,伤。

所以在拿到一道题目时,我该:
1. 看清楚题目意思,关注概念定义,不要漏掉细节。
2. 想清楚思路,可以记录在纸上,并在脑中模拟一遍。
3. 设计清楚具体采用的数据结构,思考清楚在代码中如何使用。一旦设计好,不要轻易修改,不然很烦躁,还容易出错。
4. 迅速码完之后,复杂的代码要按流程调试一下数据走向,确保和思路没有差别。
5. 代码思路清晰还不算事,便代码的节奏也该正确。处理一个条件时,会产生的后果也该想清楚,并把对应部分代码也即刻写出来。不然在拖在后面些容易忘记,而且造成debug也不容易。
6. 写程序时,每一步用到的变量包含的含义要清楚。一旦混淆,就是难以寻觅的bug。同样每一句代码的意义也应当是自己明确的。
7. 通常逻辑清晰比代码简洁更优先考虑,往往逻辑清晰的编程代码也简洁。

我的题目解答:
1. 浙大PAT(http://www.patest.cn/contests/pat-a-practise):https://github.com/zakilo/pat2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值