算法刷题前45天总结

共 1627字,需浏览 4分钟

 ·

2020-12-24 07:05


Python与算法社区
已原创 449 篇,干货满满
三步加星标


01

02

03

三步加星标





你好,我是 zhenguo


昨晚推送excel读取csv文件乱码问题的解决方法一文,后来收到留言问pd.to_csv保存为csv格式可以吗,是可以的,excel读取csv文件一定会借助文件开头的编码格式数据,而utf-8无法提供类似信息所以to_csv时会乱码,而utf-8-sig格式(sig 是 signature 缩写)带有这类BOM信息,所以pd.to_csv时,编码格式encoding参数要设置为 utf-8-sig


我正在陆续整理这些频繁使用但容易出bug出问题的解决方法,接下来发出来,与你一起补充完善沉淀出通用解决方案,做成一个模块或包。



按照施工计划,该到算法部分,学习算法和数据结构挺有必要的,也很有意思,但是算法和数据结构的学习从来不是一蹴而就,中间要有很多思考,很多练习,很多积累,才能真正掌握。


熟悉我的粉丝知道,半年前我组织大家刷题,目前已有650位星友加入星球,一起每天刷题练习、分析思考和总结,现在来到Day118:魔法字典.

把过去day0-day45天的刷题笔记总结出pdf,想学习的微信我备注:刷题

不必打赏
给我点个赞
就心满意足了

整个 pdf 150 页,共计3万字,下面是这40多天的 pdf 目录:


pdf 截图


有朋友跟我聊天说,自己刷了很多题,但最后还是会:看到答案一时爽,自己去做很不爽,面试时脑海空白就凉凉。

这是为什么呢?拿开发一个系统的小模块为例,因为业务逻辑居多,所以只要想清楚业务规则后,只要语言掌握的熟练些,从头到尾都会写的很顺溜。并且,写业务系统的逻辑,我们可能不会太留意每个函数的时间和空间复杂度,开发几年后,觉得没啥意思,自己也没啥提高。

但是,练习算法思维就完全不一样。每一道算法题背后都可能涉及一些计算机思维、数学归纳分析等等。只有追求极致,才可能写出满足时间和空间复杂度要求的解,因此练习leetcode上的题目做起来就不那么顺,同一道题,O(n^2)的解容易想,O(n)的解就不那么容易想;O(n)空间的解好想,O(1)空间的解就不容易想。

比如,找出长度为n的列表中重复值和错误值,已知列表取值范围:[1,n],有的朋友一想到就是使用set去重,或者排序后相邻的就是重复元素。这些思路都能得到结果,但不是最好的求解方法,因为完全没考虑已知条件列表取值范围:[1,n]。如果平时不去练习和总结,就写不出这种特殊数组下的特定算法。
有的朋友会觉得这没啥用,这类数值结构工作中用不到,这种认识就有些莽撞了。那些速度快占用内存少的高性能app,一定会追求极致,使用最匹配特定场景的特定算法和数据结构。

有了更高的目标要求后,再去努力达成,结果就是程序员level不断提升,相应的荣誉和待遇就会随之而来。

总之,做算法练习题,找到答案从来都不是最重要的,网上答案有很多种。关键是,如何找到、分析出答案,并挖掘出背后的基本原理。而过去这些天,我们一直贯彻执行:如何分析题目更重要的方针。

其实,只要我们一天拿出二三十分钟,去学习别人不愿意学的东西。坚持下来,一年后就会有一个大的改变。欢迎加入我的 《算法刷题日记》 星球,加入这里你能获得什么:
  • 过往100多天刷题完整分析和答案PDF

  • 目前星球成员650+,一起刷题,一起督促,更能坚持下去

  • 不仅有刷题,还有Python、算法、数据分析、机器学习等精华资料,目前100多个电子书PDF,都是我珍藏的精华

  • 我的目标打造为精品的算法刷题星球,2020年最后12天,发30元优惠券,平均下来一天2毛多,打卡满300天,退换80%费用,20%平台拿走了:


浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报