双指针 滑动窗口题目汇总

LeetCode面试经典150最优答案汇总 以数量为基准,数量H慢慢增加,就要找到H篇引用大于等于H的。我们可以先对引用量排序,然后从引用量大的一边往另一边找,比如引用量为1,2,3,5,那么H=2时候,从后面找两篇论文满足条件肯定比从前面找好,如果后面都找不到,那前面更不可能,所以for循环应该从大往小循环。如何知道针对某个引用量,有多少篇论文大于这个引用量呢,经过排序后,citiation[i]可以代表i右边的论文引用都大于citation[i]。 阅读详情

3. 无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

示例 1:

输入: "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        if len(s)<=1:
            return len(s)
        res = 0
        a = set()
        j=0

        for i in range(0,len(s)):
            if i!= 0:
                a.remove(s[i-1])
            while j<len(s) and s[j] not in a:
                a.add(s[j])
                j+=1
            res = max(res,j-i)
        return res

 

76. 最小覆盖子串

给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字符的最小子串。

示例:

输入: S = "ADOBECODEBANC", T = "ABC"
输出: "BANC"

 

用一个hash表记录字符出现的次数(为了统一,即使没有出现的字符也减一),count记录一共要查找的字符

from collections import defaultdict
class Solution:
    def minWindow(self, s: str, t: str) -> str:
        mapping = defaultdict(int)
        count = len(t)
        start = 0
        length =float("inf")
        for a in t:
            mapping[a] +=1
         
        left =0

        for right in range(0,len(s)):
            r = s[right]
            if mapping[r] >0:
                count-=1
            mapping[r]-=1

            while count==0:
                if right-left+1<length:
                    start = left
                    length = right-left+1
                l = s[left]
                mapping[l] +=1
                if mapping[l]>0:
                    count+=1
                left+=1

        
        return "" if length == float("inf") else s[start:start+length]

 

双指针、滑动窗口 双指针是指在算法中使用两个指针(通常是索引或迭代器)来解决问题,通过移动这两个指针来扫描数据结构(如数组或链表),从而达到高效的目的。双指针的核心思想是利用两个指针的相对位置或移动方式来减少时间复杂度,通常能将暴力解法的复杂度从 (O(n^2)) 优化到 (O(n)) 或 (O(n \log n))。:(O(min(m, n))),其中 (m) 是字符集大小,(n) 是字符串长度。:(O(n)),因为每个指针最多移动 (n) 次。:(O(n)),遍历数组一次。:(O(1)),原地修改。假设有且仅有一组解。 阅读详情

相关推荐

【双指针、滑动窗口、矩阵】算法例题

下一个状态是通过将上述规则同时应用于当前状态下的每个细胞所形成的,其中细胞的出生和死亡是同时发生的。个格子的面板,每一个格子都可以看成是一个细胞。,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。因为无重复字符的最长子串是 "abc",所以其长度为 3。因为无重复字符的最长子串是 "wke",所以其长度为 3。因为无重复字符的最长子串是 "b",所以其长度为 1。旋转图像,这意味着你需要直接修改输入的二维矩阵。请注意,你的答案必须是。是该条件下的长度最小的子数组。的当前状态,返回下一个状态。

QiAn的博客 1386

【滑动窗口精选题目】详解8道题

滑动窗口经典8道题:1、长度最小的子数组 2、无重复字符的最长子串 3、最大连续1的个数 III 4、将x减小到0的最小操作数 5、水果成篮 6、找到字符串中所有字母异位词 7、串联所有单词的子串 8、最小覆盖子串

m0_74044018的博客 1965

零信任架构实战:“持续验证+动态授权”全流程解析(附策略引擎联动图)

《零信任实战指南:7图拆解核心流程与行业案例》摘要:本文通过7张架构图系统解析零信任五大核心流程:强身份认证、设备检查、动态授权、持续监控和自动降权。对比金融(重数据审计)与制造业(重物理绑定)的落地差异,指出三大常见误区及解决方案。数据显示,零信任可使安全响应提速60%,泄露成本降低45%。文章提供6个月实施路线图,强调零信任是"智能信任"体系,建议企业分阶段改造,优先保护核心系统。附赠金融/制造行业策略模板及甘特图示例。(149字)

sara_han的博客 773

双指针类型题目

(版本一)快慢指针法。

mingchen_peng的博客 1012

Excel也能玩转K-means聚类?手把手教你用表格搞定用户分群(附完整公式)

本文详细介绍了如何在Excel中实现K-means聚类算法,无需编程即可完成用户分群。通过SUMIF、SQRT等基础函数,从数据预处理到最终分群全流程手把手教学,特别强调数据标准化和迭代优化的关键步骤,帮助运营团队低成本高效分析用户行为数据。

weixin_30555125的博客 180

使用 Python 和可视化编程控制树莓派机械臂myCobot

这些模块包括逻辑、循环、数学、文本、列表、颜色、变量、函数以及控制机械臂的函数等等,所以用户可以轻松入门编程,只需单击右上角的运行就可以启动程序,做一些有趣的应用。可以搭配任意摄像头进行图像识别,具有4个 USB 端口,可以通过 Raspberry Pi 的微型 HDMI 端口连接到显示器. 最后,40 个GPIO 接头可以进行更多扩展应用,机械臂每个接口都有清晰的标记,面板上还有一个电源开关和一个直流电源插孔。您现在可以将机器人放在地板或桌子上,并用力拧紧吸盘,以确保机械臂的底座在操作过程中不会移动。

m0_62456998的博客 3965

LeetCode专题:滑动窗口(持续更新,已更17题)

持续更新LeetCode的滑动窗口专题刷题总结,实际少于24道,题目分类参考了宫水三叶https://github.com/SharingSource/LogicStack-LeetCode/wiki。

清风微浪又何妨的博客 2468

计算机视觉——多视图几何

多视图几何1.前言1.1 多视图几何概念2. 基本原理2.1 对极几何2.2 基础矩阵2.2.1 基础矩阵推导2.2.2 求解基础矩阵3. 实验过程3.1 实验数据准备3.2 实验代码3.3 实验结果及分析4. 实验中遇到的问题 1.前言 1.1 多视图几何概念 多视图几何是利用在不同视点所拍摄图像间的关系,来研究照相机之间或者特征之间关系的一门科学。 多视图几何(Multiple View ...

RuiMa的博客 7715

LeetCode双指针经典题(一)15道

LeetCode双指针类型题目

CodePanda@GPF的博客 2358

别再只当调包侠了!YOLO检测头到损失函数全链路拆解,看完才算真懂

YOLO的精妙不在于某个单一创新,而在于各模块围绕“实时精准检测”这一目标的协同设计。Backbone追求高效特征压缩,Neck保障多尺度信息流通,Head解耦任务冲突,Loss动态引导优化方向。只有理解这套内在逻辑,才能跳出“调包-试错”的低效循环,在面对新场景、新问题时做出有理有据的改进决策。技术深度决定职业天花板。下次再调YOLO时,不妨先问自己:我改的这个参数,到底影响了系统中的哪一环?参考资料。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 184

基于全局和局部接受性因果特征的广义学习模型,用于在线增量机械故障诊断

本文提出了一种**因果广义学习模型(CBLM)**,用于在线增量机械故障诊断。该模型结合了**全局因果特征**(时域、频域、故障特征频率均值)和**多尺度局部因果特征**(通过扩张卷积提取),构建了一个具有**增量学习能力**的广泛学习系统(BLS)。CBLM支持**结构增量学习**(增加增强节点)和**样本增量学习**(动态更新权重),无需重新训练整个模型,显著提高了计算效率和诊断精度。在两个滚动轴承数据集上的实验表明,CBLM在诊断准确性和训练时间上均优于传统深度学习模型,适用于在线实时故障诊断。

huanghm88的专栏 387

双指针与滑动窗口的简单理解,与例题分析

对于双指针和滑窗的基本理解和例题分析

BlackMonkeyHH的博客 1669

当SLAM遇上FPGA:打造一个会“硬件加速”的激光雷达SLAM系统

点云数据的运动畸变校正特征点提取与匹配、以及ICP迭代最近点配准。在传统方案中,我们通常用ARM核完成所有计算。但点云配准中的最近邻搜索(KD-Tree)需要大量分支判断,CPU处理起来效率很低;而ICP中的矩阵分解(SVD)虽然计算量大,但非常适合并行化。ZYNQ的特殊之处在于它把ARM(PS端)和FPGA(PL端)集成在同一颗芯片上。ARM擅长跑操作系统、处理复杂逻辑和调度,FPGA擅长做高吞吐量的并行计算。两者之间通过AXI总线高速互联,数据交换延迟只有几十个时钟周期。

QQ_778132974的博客 374

leetcode/hot100

【代码】leetcode/hot100。

weixin_54447296的博客 1265

基于STM32、HAL库的AD7124-8BCPZ模数转换器ADC驱动程序设计

/ 配置0: 使用内部参考电压(2.5V),增益128,双极性。// 配置通道0: AIN0+和AIN1-,使用配置0和滤波器0。// 100ms采样间隔。// 转换为电压值(使用内部2.5V参考电压)// 构造读命令: 最高位为1表示读,接下来7位是寄存器地址。// 构造写命令: 最高位为0表示写,接下来7位是寄存器地址。// 配置滤波器0: 输出数据率50Hz,后置滤波器4。

corlin6688的博客 528

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

leetcode 中 双指针 和 滑动窗口 的关系

优快云话题挑战赛第1期 活动详情地址:https://marketing.youkuaiyun.com/p/bb5081d88a77db8d6ef45bb7b6ef3d7f 参赛话题:Leetcode刷题指南 话题描述:代码能力是一个程序员的基本能力,而除了做项目之外,大家接触到的最常规的提升代码能力的方法基本就是刷题了,因此,加油刷题,冲刺大厂! 创作模板:Leetcode刷题指南 文章目录💎一、题目🏆1.题目描述🏆2.原题链接💎二、解题报告🏆1.思路分析🏆2.代码详解🏆3.按步骤分析 💎一、题目 🏆1.题.

wow_awsl_qwq的博客 1127

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

多道双指针类型题目

因为之前做其他专题的时候,基本已经介绍过双指针的概率和使用方法与场景了。所以该文就是做一下汇总整理,方便后续按专题复习。

YouMing_Li的博客 324

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【LeetCode】LeetCode经典题目合集,面试刷这些就够了(持续更新)

经典lc题目整理,有个人理解,可以作为学习和准备面试使用

GEEK-BANANA 9283

动态窗口题目 leetcode

判断 s2 是否包含 s1 的某个排列,是固定窗口大小的滑动窗口。找出覆盖目标字符串的最小子串,是经典的双指针 + 滑动窗口变种。找出所有包含某字符串排列的子串,滑动窗口 + 计数数组。给定窗口大小,找每个窗口内的最大值,需用单调队列优化。较复杂的滑动窗口,每次匹配多个等长字符串。

m0_51130035的博客 194

刷题汇总一览

刷题汇总一览

牛牛博士博客 530

【LeetCode 热题 100】解答汇总

所有发表的力扣题目合集

m0_47171044的博客 433

双指针算法——滑动窗口

滑动窗口本质上也是利用双指针来解决特定情况下的问题。滑动窗口算法思想是通过俩个指针,定义在左边和右边,俩指针同向运动,保持着一个像“窗口”一样的双指针来不停的压缩或者扩展来移动“窗口”,从而找到特定的子数组。

2302_80521088的博客 2622

【算法】双指针思想 + 滑动窗口技术 python

那有没有效率高的做法呢?我会告诉你:有的,兄弟有的。 Talk is cheap. Show me the code.

查理零世的博客 2066

双指针——滑动窗口

双指针算法是一种常用的算法技巧,广泛应用于数组、链表、字符串等数据结构的处理中。其中,是双指针的一种特殊形式,主要用于解决子数组或子字符串相关的问题。下面我们详细讨论双指针和滑动窗口的区别,以及滑动窗口的特点和应用场景。

2301_80215285的博客 1698

算法系列--滑动窗口与双指针

简述个人理解滑动窗口与双指针: 双指针:以r为基础指针并根据题目要求来移动l或者保持l不动,同时ans由每一步的r-l来更新。 滑动窗口:以l为基础指针,并且l~r看做一个窗口,r不断右移,根据题目要求来右移一次l或者保持l不动,特点是r-l始终不减,ans为最终的r-l 区别:双指针算法当需要移动l指针时,可能移动多个单位以满足要求。而滑动窗口算法当需要移动l指针时,每次必定只移动一个单位! 算法选择: 求最短长度类似题目:双指针 求最长长度类似题目:双指针 or 滑动窗口 题目一 LC 1004

lyqptp233的博客 4681

双指针-滑动窗口

滑动窗口算法

2401_86718044的博客 701
上一篇: 构造二叉树汇总
下一篇: bfs 和 dfs 汇总
shell33168
博客等级 码龄9年 33粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值