1.开始在leetCode中刷题的一些感受

来源:互联网 发布:js replaceall 转译 编辑:程序博客网 时间:2024/05/22 03:07

最近项目上没有什么事情,鉴于自己的基础比较差,正好最近也开始学习了Python,就想在leetCode中使用Python语言刷刷题,加强一下自己的算法的能力,下面就来谈谈最近刷题的一些感受:

1、刚开始刷题的时候,基本上一下午只能A过两三道easy的算法题,但是我在每次A过之后,都会在讨论里看看别人的算法,把自己觉得叼炸天的算法记录下来,尝试理解别人的算法。这种做法给我带来的最大好处是:知道了很多Python中常用函数的使用场景,增强自己的代码阅读能力,并且开阔了我的思路。

2、在A题的过程中,我从没用过IDE编译代码看输出,基本上都是肉眼debug,然后改错。这个方法是我在A题时别人建议的,这样可以锻炼自己的思维能力,也可以慢慢提高自己写代码的全局观和对异常输出的处理。

3、一开始刷题时,我都是有一点思路就尝试开始写代码,写着写着发现这种方法不可行,又全部删掉。后来慢慢变成了先在纸上写好完整的思路,甚至包括需要声明几个变量。这样虽然一开始可能觉得速度有点慢,但这样会让你在真正写代码时思路清晰,从而少犯错误,并且我觉得这种写代码的状态更好。到后来我在写算法的时候甚至不是从上到下的编写,而是先写算法的框架,再写每一个部分要完成的功能。自我认为,这是比较好的敲代码的方法,并且可以增加自己纸上代码的能力。

4、关于测试用例,一般我都是随便试两个,通过了就直接submit,但是这样导致我的AC率很低。后来改成先写思路的时候,我就先想测试用例,而且想一些极端的,并根据 这些测试用例来写代码的一些边界条件和保护条件,这样AC率也会慢慢高了。

5、最后,一定不要满足自己的算法,尽可能写出最简单的代码,即使是相同的思路,也一定要将代码减至无法再减为止。这样可以增加自己的代码质量,久而久之,你对这门语言的掌控能力也会得到提升。

到现在为止,我也只A完了所有标为easy的题目,前路还长,仍需努力~以后这个算法分类我会记录一些A题时叼炸天的算法,分享给大家,共勉。

0 0
原创粉丝点击