Leedcode刷题笔记
python刷题笔记1:
-
排序:
list.sort():列表的方法,修改已经存在的列表,无返回值 sorted(list):可迭代对象都可以使用,返回新的列表,不改变作用列表
-
反转:
list.reverse(): 列表的方法,无返回值 reversed(list): 可迭代对象都可以使用,不改变作用列表 ,使用完还需 list( reversed(list) )
-
字典
- 指定值,返回键:value-->key:( 比较麻烦) list(dict.keys()) [ list(dict.values()).index(another) ] - 指定键,返回值:key-->value: dict.get(1) dict[1]
-
字符串的几个操作:
xxxxxxxxxxxxxx
-
线性表包含顺序表(常规的list)和链表:
链表是一条线,拓宽到整个平面就构成了树,进而形成了图
-
算法的时间复杂度和空间复杂度:
时间复杂度:看执行次数最多的一条代码 空间复杂度:看变量申请的次数
-
统计字符串或者列表,每个元素出现的次数:
使用collections里的counter()函数超级方便(leetcode-383)
-
暂存一个列表:
不可以使用 `lst1 = lst2`,此时一个列表改变,另一个列表也会改变
两个列表赋值,以及解决办法
lst1[:] = lst2[:]
同理,二维列表:
temp = [] temp = [matrix[i][:] for i in range(len(matrix))]
列表互换
nums1[:], nums2[:] = nums2[:],nums1[:]
-
列表的删除
lst.remove(vaule):按照值删除、只能删除首个 lst.pop(index):按照索引删除 del lst(index):按照索引删除 del lst(index1:index2):删除一段连续的 lst.clear():全部删除
-
二维列表,取一列:
a=[ [1,2,3], [4,5,6] ] print(a[:,1]) # 报错 print(a[1]) # [4,5,6] print([x[1] for x in a]) # [2, 5] ```
-
互换元素
for i in range (int(l/2)): matrix[i] ,matrix [l-i-1] = temp [l-i-1],temp[i] # 【1】
# 在互换列表两个值时,但是互换后列表值已经改变, 导致后面的互换失败,可以使用【1】这种方法,同时互换