一、不要一觉得有思路就动手,这样往往出各种问题等。
编程题同样的,符合越急做得越慢,越差的原理。要先将题目考虑清楚在做,具体的:
1、先在纸上边写(画)边想,要把完整的思路理出来才行,不然很可能直接上去写,写到一半才发现方法错了,或者方法太复杂,gg。
2、再理出完整思路的过程中,要好好预判用来实现的方法的实现复杂度,复杂的需要简洁优化,包括整体实现和局部实现。通常最开始考虑到的都会有过于复杂的地方,所以要考虑哪些地方实现起来难,易出错,要将这些地方改了,优化掉,尽量找到最简洁的实现。不然最后可能要花成倍的时候。别看只有几十分钟,简洁的代码对后期验证,调bug等提供大大的方便。
3、检查正确性等。
二、其它
做优化,能抽成方法的都抽成方法等,不要写重复代码。自己可能觉得代码量小,又只有几十分钟,不用优化,错的,对自己来说,上了十几行,几十分钟这种程度的代码就已经是经常用,有难度的东西了,就要优化了,不然GG。常用、有难度的东西,优化比不优化好的思想。
做ACM类似的比赛题写代码和面试等其它地方做算法题有个比较大的不一样的地方,比赛题的输入,运行环境等都是标准的,而面试类的题目不会这样,面试官会把健壮性考虑作为一个重点,面试题等考虑各种实际运行环境中遇到的异常,这样异常情况更多。而比赛题做多了,往往忽略这个。所以做面试题的要尤其注意这个,考虑实际环境的异常。如果没有做的话,虽然题都会做了,但面试官会觉得你基本能力都不过关,pass。
vc6 这种学校不更新的过时编译器上,使用printf比调试更方便。