教你用python高效刷leetcode
发布日期:2021-05-06 16:43:32 浏览次数:14 分类:技术文章

本文共 1328 字,大约阅读时间需要 4 分钟。

由于Python语法的简洁性,用python来刷leetcode往往能用比别的语言更少的代码量AC。但是如果不是对python很熟悉就会比较尴尬了,如果有些功能明明有高效的内置方法因为不知道要自己实现、或者不了解其复杂度提交时出现超时。

我总结了一下自己在刷leetcode时关于python这个语言的经常被使用的数据结构和内置方法。

基础

离开数据结构,算法就是空中楼阁,所以了解python内置的数据类型用法和其效率是非常有必要的

list

list作为最常见的内置数据结构,其不仅可以当作C语言的数组来使用,一些python特有的特性往往可以事半功倍

append  在list的结尾追加一个元素

sort  对list进行排序,在list长度小的时候使用插入排序,在长度大的时候使用快排,所以其时间复杂度可以视为O(nlgn)

pop  将最后一个元素重list内部弹出并返回

切片  python强大的语法糖之一,不仅可以用非负数索引,负数索引的合理使用可以节省不少代码量

set

set本质是哈希表,会对其内部元素去重,检查一个元素是否在set内部的时间复杂度是O(1)

常用的方法为

add  添加一个元素,就算是用一个元素多次添加,其内部也仅保留一份

pop  随机弹出一个元素并返回

dict

同set一样,dict本质也是哈希表,但是set是单个元素,dict是key-value的组合

setdefault  接受两个入参key、default, 如果dict存在key则不做任何操作,如果不存在key,则创建一个 key其value为default

get  同setdefault一样接受两个参数key、default,如果存在key,则返回其value,否则返回default

pop 同setdefault一样接受两个参数key、default,如果存在key,则删除key返回其value,否则返回default

str

字符串也是一个经常在算法中常用的数据结构,在python中str是不可变对象,支持”+“操作当时效率不高需要慎用

split  用指定的分隔符将str分割为list

strip 返回str去掉首尾的空白符后新的str,原来的str不受影响

join 用str作为连接符连接参数里面的每一个元素,常常用来替代”+“

进阶

这里介绍几个常用的内置函数

int 将一个参数转为int类型,在遇到字母等字符时会抛出错误

sum 返回参数的求和

min 返回多个参数的最小值

max 返回多个参数的最大值

abs 返回一个数字的绝对值

高级

这里对于数据结构的知识点要求就比较高了,仅仅介绍常用方法,如果不了解其特性的还请自己查阅资料

queue 队列

put 入队操作

get 出队操作

list 栈

这里又有list,是因为python没有单独的栈,在需要栈的时候往往使用list

append 入栈

pop 出栈

heapq 堆

仅支持最小堆,有个小技巧:如果最大堆,取反之后再放入堆,取出的时候再取反

heapfiy  将一个list转为最小堆

heappush  往一个最小堆添加元素

heappop  弹出堆中的最小值并返回

 

转载地址:https://blog.csdn.net/afterlake/article/details/100054150 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:用数据告诉你程序员都在看什么
下一篇:为什么黑帽子从不用鼠标,一直在敲键盘?看完长见识了

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月15日 11时06分05秒