当前位置: 首页 > news >正文

力扣hot100_子串_python版本

一、560. 和为 K 的子数组

在这里插入图片描述

  • 思路:这就是一道典型的前缀和的题
  • 代码:
class Solution:def subarraySum(self, nums: List[int], k: int) -> int:presum = [0] * (len(nums) + 1)for i, x in enumerate(nums):presum[i + 1] = presum[i] + x  # 前缀和序列需要n+1个ans = 0cnt = defaultdict(int)for p in presum:ans += cnt[p - k]cnt[p] += 1return ans

二、239. 滑动窗口最大值

在这里插入图片描述

  • 思路1:暴力。这道题如果暴力求解其实很简单,根据描述写就行了,但是复杂度比较高, O ( n 2 ) O(n^2) O(n2)
  • 代码
class Solution:def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]:if len(nums) == 1:return numsres = []left, right = 0, kwhile left <= (len(nums)-k):res.append(max(nums[left:right]))left+=1right+=1return res
  • 思路2:单调队列。单调队列分为3步
    1. 入(元素入队尾,并维护单调性(看需要保持单增,还是单减))
    2. 出(元素离开队首)
    3. 记录答案
  • 代码
class Solution:def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]:ans = []q = deque()for i, x in enumerate(nums):# 入while q and nums[q[-1]] <= x:q.pop()  # 删除比x小的元素(找最大值,比x小的就不用看了)q.append(i)  # 加入到队尾(这个队列也是单调的了)# 出if i - q[0] >= k:  # 队首需要离开了(滑窗滑过了)q.popleft()# 记录if i >= k - 1:ans.append(nums[q[0]])retrun ans 

三、76. 最小覆盖子串

在这里插入图片描述

  • 思路:这里很神奇,Counter()这玩儿意可以比较,当然如果没法比较也可以自己写一个比较函数
  • 代码:
class Solution:def minWindow(self, s, t):ansLeft, ansRight = -1, len(s)cntS = Counter()cntT = Counter(t)left = 0for right, word in enumerate(s):cntS[word] += 1while cntS >= cntT:if right - left < ansRight - ansLeft:ansLeft, ansRight = left, rightcntS[s[left]] -= 1left += 1return "" if ansLeft < 0 else s[ansLeft:ansRight+1]
http://www.xdnf.cn/news/172333.html

相关文章:

  • Nginx配置文件介绍
  • 机器学习day2-seaborn绘图练习
  • 数模学习:二,MATLAB的基本语法使用
  • 跨专业自学AI人工智能学习路线图(2025版)
  • Android完整开发环境搭建/Studio安装/NDK/本地Gradle下载配置/创建AVD/运行一个Android项目/常用插件
  • 金融数据分析(Python)个人学习笔记(13):自然语言处理
  • Kubernetes学习笔记-配置Service对接第三方访问
  • 【Redis】服务端高并发分布式结构演进之路
  • 零基础小白如何上岸数模国奖
  • IDEA 连接 Oracle 数据库
  • 安卓7.0以上抓包配置--Charles
  • ​​全栈自动化:从零构建智能CI/CD流水线​
  • 手搓传染病模型(SEIR)
  • k8s的volume
  • Alibaba Cloud Linux 3.2104 LTS 64位 容器优化版安装docker docker compose记录
  • MyBatis DTD [Element type “if“ must be declared]
  • Kafka HA集群配置搭建与SpringBoot使用示例总结
  • LeetCode -- Flora -- edit 2025-04-27
  • Spring AI Alibaba - MCP连接 MySQL
  • docker--docker的基本环境配置
  • Stable Diffusion 技术全景解析与行业竞争力分析
  • 小程序发布后,不能强更的情况下,怎么通知到用户需要去更新?
  • 图论---最大流(Dinic)
  • Golang 类型方法
  • 【2025最近Java面试八股】Spring中循环依赖的问题?怎么解决的?
  • 层级时间轮的 Golang 实现原理与实践
  • 环境DNA宏条形码技术,鱼类检测引物如何选择?
  • 基于知识库的客户服务工具
  • Unity Post Processing 小记 【使用泛光实现灯光亮度效果】
  • 2P4M-ASEMI机器人功率器件专用2P4M