python刷题
QQQ 代码记录 7
  1. 二维list去重: list1 = list(set([tuple(ch) for ch in list0])) tuple可hash!

  2. 二维list排序: re_res = sorted(t_re_res,key=(lambda x:x[0]))

  3. 约瑟夫环问题:

    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
    
  4. python的not不是通用的,queue.deque()可以使用not来判断是否为空,而queue.Queue()则不可以,但后者可以用内置函数.empty()来判断是否为空

  5. 队列的最大值,可以使用双端队列deque来存储一条不递增序列,然后依次判断

  6. 滑动窗口的最大值:上述策略失效,因为窗口一定,无法使用简单的一条双端队列保存下一个最大值。此问题尚未解决,剑指offer(一)59题,用的替代和取最大值操作来实现的,表现也还不错!NOT FINISHED!!

  7. 字符串的匹配和操作是一个盲点,一道题写了两小时,听离谱的,各种边界条件和可能情况非常令人迷惑,据leecode官方解释有自动状态机做法,亦即预先想好各种可能,然后只需要按位带入即可??
    剑指offer(一)20题           剑指offer(一)67题

  8. 剑指 Offer 43. 1~n 整数中 1 出现的次数

  9. 剑指 Offer 19. 正则表达式匹配

  10. a = [[1] *10]*10 ;      单独修改一个元素会改变整个那一列元素!!
    可以通过[[0 for i in range(3)] for j in range(3)]实现

  11. 数一的个数!!n = n & (n - 1)该才做会将最后一个一去掉,运行x次不满足n > 0退出,表示有x个

  12. 不递减序列求目标和的两个数,一个是遍历+二分查找,另一个解法双指针(两边逼近)

dadw
dawd
daw
 
python刷题
https://blog.427221.xyz/archives/python%E5%88%B7%E9%A2%98
作者
qqq
发布于
更新于
许可