125 Star 1.5K Fork 598

programmercarl / leetcode-master(代码随想录出品)

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
刷力扣用不用库函数.md 1.99 KB
一键复制 编辑 原始数据 按行查看 历史
HOUSHENGREN 提交于 2023-04-23 15:14 . Update 刷力扣用不用库函数.md

究竟什么时候用库函数,什么时候要自己实现

知识星球里有录友问我,刷题究竟要不要用库函数? 刷题的时候总是禁不住库函数的诱惑,如果都不用库函数一些题目做起来还很麻烦。

估计不少录友都有这个困惑,我来说一说对于库函数的使用。

一些同学可能比较喜欢看力扣上直接调用库函数的评论和题解,其实我感觉娱乐一下还是可以的,但千万别当真,别沉迷!

例如:字符串:151. 翻转字符串里的单词这道题目本身是综合考察同学们对字符串的处理能力,如果 split + reverse的话,那就失去了题目的意义了。

有的同学可能不屑于实现这么简单的功能,直接调库函数完事,把字符串分成一个个单词,一想就是那么一回事,多简单。

相信我,很多面试题都是一想很简单,实现起来一堆问题。 所以刷力扣本来就是为面试,也为了提高自己的代码能力,扎实一点没坏处。

那么平时写算法题目就全都不用库函数了么?

当然也不是,这里我给大家提供一个标准。

如果题目关键的部分直接用库函数就可以解决,建议不要使用库函数

如果库函数仅仅是 解题过程中的一小部分,并且你已经很清楚这个库函数的内部实现原理的话,那么直接用库函数。

使用库函数最大的忌讳就是不知道这个库函数怎么实现的,也不知道其时间复杂度,上来就用,这样写出来的算法,时间复杂度自己都掌握不好的。

例如for循环里套一个字符串的insert,erase之类的操作,你说时间复杂度是多少呢,很明显是O(n^2)的时间复杂度了。

在刷题的时候本着我说的标准来使用库函数,相信对大家会有所帮助!

1
https://gitee.com/programmercarl/leetcode-master.git
git@gitee.com:programmercarl/leetcode-master.git
programmercarl
leetcode-master
leetcode-master(代码随想录出品)
master

搜索帮助