【力扣hot100】刷题笔记Day4

前言

  • 在家整个人就犯懒了...学习懒惰+社交懒惰,除了每天做家教,一整天也没做什么正事,要实在不想学习就和去年过年那样看看书也行啊

3. 无重复字符的最长子串 - 力扣(LeetCode)

  • 还是灵神的题解最清晰,滑动窗口的模板参考【代码随想录】刷题笔记Day5
  • class Solution:
        def lengthOfLongestSubstring(self, s: str) -> int:
            ans = left = 0
            window = set()  # 维护从下标 left 到下标 right 的字符
            for right, c in enumerate(s):
                while c in window:  # 加入 c 后,窗口内会有重复元素
                    window.remove(s[left])
                    left += 1  # 缩小窗口
                window.add(c)
                ans = max(ans, right - left + 1)  # 更新窗口长度最大值
            return ans

 438. 找到字符串中所有字母异位词 - 力扣(LeetCode)

  • 滑动窗口,先存p的字符数量,右指针遍历s,用完就收缩左指针补,记录长度相同结果
  • class Solution:
        def findAnagrams(self, s: str, p: str) -> List[int]:
            s_len, p_len, res = len(s), len(p), []
            counts = [0] * 26  # 长度26值为0的数组
            # 存储p串的字符数量
            for c_p in p:
                counts[ord(c_p) - ord("a")] += 1
            # 滑动窗口
            l = 0
            for r in range(s_len):
                counts[ord(s[r]) - ord('a')] -= 1  # 记录
                # 当右侧用完了,收缩左侧
                while counts[ord(s[r]) - ord('a')] < 0:
                    counts[ord(s[l]) - ord('a')] += 1
                    l += 1
                # [l, r]长度相同记录结果
                if r - l + 1 == p_len:
                    res.append(l)
            return res

后言

  • 下午睡了两小时,我是🐖,滑动窗口的思路重新学了一下,明天继续

相关推荐

  1. hot100笔记Day4

    2024-02-08 00:42:01       56 阅读
  2. hot100笔记Day1

    2024-02-08 00:42:01       54 阅读
  3. hot100笔记Day24

    2024-02-08 00:42:01       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-08 00:42:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-08 00:42:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-08 00:42:01       82 阅读
  4. Python语言-面向对象

    2024-02-08 00:42:01       91 阅读

热门阅读

  1. SpringBoot实现即时通讯

    2024-02-08 00:42:01       42 阅读
  2. Centos7部署MetaBase-v0.48.3

    2024-02-08 00:42:01       49 阅读
  3. 【力扣】复写零,栈+双指针法

    2024-02-08 00:42:01       52 阅读
  4. LeetCodeLCR 114. 火星词典——拓扑排序

    2024-02-08 00:42:01       51 阅读
  5. Kylin系统下Qt的各种中文问题解决思路

    2024-02-08 00:42:01       61 阅读
  6. 1755. 最接近目标值的子序列和

    2024-02-08 00:42:01       54 阅读
  7. zstd字典压缩的大数据生产实践 & ctf逆向出题启发

    2024-02-08 00:42:01       49 阅读
  8. typedef 与#define 的概念及区别?

    2024-02-08 00:42:01       54 阅读
  9. 工具--Git详解

    2024-02-08 00:42:01       59 阅读
  10. MySQL数据库基础与SELECT语句使用梳理

    2024-02-08 00:42:01       41 阅读
  11. 查看 iOS 系统的日志或崩溃日志

    2024-02-08 00:42:01       55 阅读
  12. 如何使用 uniapp 开发(一)

    2024-02-08 00:42:01       54 阅读
  13. C++进阶--C++11包装器

    2024-02-08 00:42:01       55 阅读
  14. 【5G NR】移动通讯中使用的信道编解码技术

    2024-02-08 00:42:01       50 阅读
  15. Python 机器学习 特征预处理

    2024-02-08 00:42:01       51 阅读