Skip to content

【003-week1】算法训练营第一周学习总结 #42

Open
@lection

Description

@lection

第一周实践下来,感想有些复杂,更多是针对个人学习方法改善方面的。对于我第一个问题,说起来有点儿奇怪,刷题(可能是简单的题)对我来说是一个上瘾的事情。别的是那种感觉靠自己能解决的题,自己不但会长时间的花时间思考解决或者优化的方案,而且还不愿意看答案。而看了答案以后,还会去考虑答案说的对不对……总之感觉刷题效率不是很高,没有严格按照超哥说的那种五分钟看答案的套路,但是太早看答案就不甘心。还好第一周工作强度不是特别大,有时间给可以这么刷题。第二周可能要考虑更高效率的刷题,毕竟超哥给的作业里就看到1000+编号的题目了。另一个感受是,对于这部分知识的掌握不能操之过急,每一个知识背后都有很多细节可以挖掘,特别是再看了其他玩家的分享之后,无论是在思路上,还在实现的语法细节上都有很大的收货,并且可以进一步的深挖。

技术方面第一周刷下来,有几个小的知识点可以分享一下。

  1. python比java慢10倍这个说法,至少在leetcode跑测试里可以明显的感受到。
  2. 在python实现里,list下标访问要比dict的hash快的太多,很多题用dict会超时,而list则可以通过。这个跟java也差距很大。
  3. 有防御式的代码,或者处理边界问题,最好提早进行处理,让后续算法实现的时候更简洁高效,也减少错误。
  4. 哨兵的技巧真的很好用
  5. python中交换变量的值很好用a, b = b, a
  6. 两个变量进行比较操作,并且如果后续还有递归或者循环,可以先做好变量的交换,可以很大程度简洁代码。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions