python刷题
-
二维list去重:
list1 = list(set([tuple(ch) for ch in list0]))tuple可hash! -
二维list排序:
re_res = sorted(t_re_res,key=(lambda x:x[0])) -
约瑟夫环问题:
import numpy as np class Solution: def lastRemaining(self, n: int, m: int) -> int: ans = 0 for i in range(2,n+1): ans = (ans + m) % i return ans -
python的not不是通用的,
queue.deque()可以使用not来判断是否为空,而queue.Queue()则不可以,但后者可以用内置函数.empty()来判断是否为空 -
队列的最大值,可以使用双端队列deque来存储一条不递增序列,然后依次判断
-
滑动窗口的最大值:上述策略失效,因为窗口一定,无法使用简单的一条双端队列保存下一个最大值。此问题尚未解决,剑指offer(一)59题,用的替代和取最大值操作来实现的,表现也还不错!NOT FINISHED!!
-
字符串的匹配和操作是一个盲点,一道题写了两小时,听离谱的,各种边界条件和可能情况非常令人迷惑,据leecode官方解释有自动状态机做法,亦即预先想好各种可能,然后只需要按位带入即可??剑指offer(一)20题 剑指offer(一)67题
-
a = [[1] *10]*10; 单独修改一个元素会改变整个那一列元素!! 可以通过[[0 for i in range(3)] for j in range(3)]实现 -
数一的个数!!
n = n & (n - 1)该才做会将最后一个一去掉,运行x次不满足n > 0退出,表示有x个 -
不递减序列求目标和的两个数,一个是遍历+二分查找,另一个解法双指针(两边逼近)
dadw
dawd
daw