week1F
两数之和-链表 代码测试 l1 = [5]; l2=[5] 和 l1 = [1]; l2=[9,9] 测试总是不能通过,最后发现原因出在cur指到None时候,我重新生成一个节点,但是却没有和之前的结果链表链接起来,只是一个孤立的节点。
不停提交导致通过率异常低,最后才发现居然可以修改测试样例先测好了再提交....功能也是非常强大了...
914 求最大公约数set(list) 列表转化为集合,list.count(num) 返回 list中num元素的出现次数 => 用这两个函数可以快速地生成一个统计列表元素及其频次的字典
min(dict.values()) 求出字典中的最小值
sum(map(a.count,b))统计a中字符在b中出现的次数
sum(iterable[,start])可迭代对象
week2
twoSumhash table 检索速度O(1)
for i,num in enumerate(list): 循环列表
value not in list 判断元素是否在列表中
list1 + list2 返回拼接两个列表的列表
list.sort() 返回空值 list变为已排序状态
float(int) 将int类型转化为float类型
list[ int//2 ] 列表下标必须取整数,/ 的结果是浮点数
加上两个参数均为空列表的判断,速度 72ms -> 56ms !
list 不能通过赋值向列表中添加元素,添加元素使用 append()方法
for idx,val in enumerate(str): 可用于循环字符串
''.join(list) 可用于将list拼接为str
list(str) 将str转化为list
list = ['']*len 以空字符初始化长度为len的列表
list 是关键字,不能作为变量名
a = list1[0] 修改a中的值,list1 中的值也会改变
[max(row) for row in grid] [max(col) for col in zip(*grid)]获取双重列表的行最大值列表/列最大值列表
sum(min(a[c],b[r]) - val for r,row in enumerate(grid) for c,val in enumerate(row))
sum(map(sum,grid)) 二维数组求和
week 11
1038. Binary Search Tree to Greater Sum Treepython 中没有NULL而是使用 None
复习了一遍二叉树的递归遍历方法
1005. Maximize Sum Of Array After K Negationssum(arr) 返回总和
else if 而是 elif
评论区看见一个更简洁的利用堆排序模块
heapq709. To Lower Case
Implement function ToLowerCase() that has a string parameter str, and returns the same string in lowercase.
将字符串中的大写字母转化为小写字母
python中有内置的方法 str.lower() 即可str转化为小写。
beats 100%的方法:
ToLowerCase我试过将其转化为一句话 return ''.join(chr(c+32) if 64<c<91 else chr(c) for c in stack) 但是运行时间要更长一些。原因待查。
网友评论