力扣hot100_子串_python版本

力扣hot100_子串_python版本

一、560. 和为 K 的子数组

在这里插入图片描述
  • 思路:这就是一道典型的前缀和的题
  • 代码:
classSolution:defsubarraySum(self, nums: List[int], k:int)->int: presum =[0]*(len(nums)+1)for i, x inenumerate(nums): presum[i +1]= presum[i]+ x # 前缀和序列需要n+1个 ans =0 cnt = defaultdict(int)for p in presum: ans += cnt[p - k] cnt[p]+=1return ans 

二、239. 滑动窗口最大值

在这里插入图片描述
  • 思路1:暴力。这道题如果暴力求解其实很简单,根据描述写就行了,但是复杂度比较高,O(n2)O(n^2)O(n2)
  • 代码
classSolution:defmaxSlidingWindow(self, nums: List[int], k:int)-> List[int]:iflen(nums)==1:return nums res =[] left, right =0, k while left <=(len(nums)-k): res.append(max(nums[left:right])) left+=1 right+=1return res 
  • 思路2:单调队列。单调队列分为3步
    1. 入(元素入队尾,并维护单调性(看需要保持单增,还是单减))
    2. 出(元素离开队首)
    3. 记录答案
  • 代码
classSolution:defmaxSlidingWindow(self, nums: List[int], k:int)-> List[int]: ans =[] q = deque()for i, x inenumerate(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()这玩儿意可以比较,当然如果没法比较也可以自己写一个比较函数
  • 代码:
classSolution:defminWindow(self, s, t): ansLeft, ansRight =-1,len(s) cntS = Counter() cntT = Counter(t) left =0for right, word inenumerate(s): cntS[word]+=1while cntS >= cntT:if right - left < ansRight - ansLeft: ansLeft, ansRight = left, right cntS[s[left]]-=1 left +=1return""if ansLeft <0else s[ansLeft:ansRight+1]

Read more

Flutter 组件 ubuntu_service 适配鸿蒙 HarmonyOS 实战:底层系统服务治理,构建鸿蒙 Linux 子系统与守护进程交互架构

Flutter 组件 ubuntu_service 适配鸿蒙 HarmonyOS 实战:底层系统服务治理,构建鸿蒙 Linux 子系统与守护进程交互架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 ubuntu_service 适配鸿蒙 HarmonyOS 实战:底层系统服务治理,构建鸿蒙 Linux 子系统与守护进程交互架构 前言 在鸿蒙(OpenHarmony)生态迈向工业互联、智能车载及深度客制化终端的背景下,如何实现 Flutter 应用对底层 Linux 服务(如 Systemd/DBus)的受控访问、在端侧治理长驻守护进程,已成为提升应用系统级集成能力的“技术门槛”。在鸿蒙设备这类强调内核级安全防护与微内核分布式调度的环境下,如果应用仅能实现表层 UI 的交互,而无法感知、重启或监控底层硬件驱动相关的后台服务,就无法在大屏中控、工业看板或服务器管理设备中胜任“控制塔”的角色。 我们需要一种能够穿透沙箱壁垒、支持 DBus 通信协议且具备高可靠服务状态感知能力的系统治理方案。 ubuntu_service 为

By Ne0inhk

【架构】前端 pnpm workspace详解

前端 pnpm workspace 架构详解 一篇帮你搞懂 pnpm workspace 的实战向教程,从「为啥要用」到「怎么配」全给你捋清楚;每个知识点都会讲清是什么、为什么、怎么用、注意啥,方便你系统学习、随时查阅、直接落地。 一、先聊聊:我们到底遇到了啥问题? 做前端久了,多包、monorepo、组件库联调这些事一多,就会踩到一堆具体又磨人的坑。下面把这些痛点拆开说:具体表现 → 典型场景 → 对你有啥影响。搞清楚这些,后面再看 pnpm workspace 解决啥就一目了然。 1.1 node_modules 膨胀,磁盘和时间都遭殃 具体表现:用 npm 搞 monorepo 时,根目录一个

By Ne0inhk

《n8n Webhook 节点最强教程:入门到生产级的完整实战(含流程图 / Demo JSON / 测试数据)》

1. Webhook 节点是什么?为什么它是 n8n 的灵魂? Webhook 节点用于 接收外部请求,让 n8n 可主动响应该请求,从而触发自动化流程。 通俗理解: Webhook = 让 n8n 变成一个可以被“别人访问”的 API。 别人(第三方系统)可以通过 HTTP 请求来“触发”你的工作流,例如: * 一个表单被提交 * 一个付费事件发生 * 一个用户注册成功 * 一条消息发送到机器人 * 外部系统定时推送数据 Webhook 的价值: ✔ 实现“被动触发”的自动化(无需轮询) ✔ 外部系统 → 主动通知 → 触发流程 ✔ 替代 API Server 的轻量级方案 ✔ 支持 GET/POST

By Ne0inhk

中文语义相似度实战|基于GTE模型镜像快速构建WebUI与API服务

中文语义相似度实战|基于GTE模型镜像快速构建WebUI与API服务 1. 项目概览:GTE中文语义相似度服务是什么? 在自然语言处理(NLP)领域,语义相似度计算是理解文本间内在关联的核心任务之一。无论是智能客服中的意图匹配、推荐系统中的内容去重,还是RAG架构中的检索排序,精准的语义对齐能力都至关重要。 本文介绍的 GTE 中文语义相似度服务镜像,正是为解决这一需求而设计的一站式轻量级解决方案。该镜像基于达摩院发布的 GTE-Base (General Text Embedding) 模型,专为中文场景优化,在C-MTEB(Chinese Massive Text Embedding Benchmark)榜单中表现优异,具备高精度、低延迟、易部署等优势。 核心价值总结:✅ 开箱即用:集成Flask WebUI + RESTful API,无需额外开发即可交互使用✅ 纯CPU运行:针对非GPU环境深度优化,适合资源受限的边缘或本地部署✅ 稳定可靠:锁定Transformers 4.35.2版本,修复常见输入格式问题,

By Ne0inhk