双指针

yi0112 天前
笔记·python·算法·leetcode·双指针·滑动窗口
LeetCode 424. 替换后的最长重复字符|不定长滑动窗口:如何判断窗口是否合法?题目链接:424. 替换后的最长重复字符PS:自己弄了个算法可视化网站,可以看看代码是怎么一步步运行的:算法过程可视化
yi0112 天前
笔记·python·算法·leetcode·双指针·滑动窗口
LeetCode 3. 无重复字符的最长子串|不定长滑动窗口:什么时候更新最大值?题目链接:3. 无重复字符的最长子串PS:弄了个网站,可以看代码是怎么一步步运行、得到最终结果的:过程可视化
yi0114 天前
笔记·python·算法·leetcode·二分查找·双指针
DAY24: LeetCode 167:两数之和 II|从暴力枚举到左右双指针LeetCode 167:两数之和 II - 输入有序数组给定一个按照非递减顺序排列的整数数组 numbers,找到两个数字,使它们相加等于 target。
yi0114 天前
笔记·python·算法·leetcode·双指针
LeetCode 15:三数之和|排序 + 双指针,如何避免重复答案?题目链接:LeetCode 15:三数之和给定一个整数数组 nums,找出所有满足以下条件的三元组:其中 i、j、k 必须是三个不同的下标,并且答案中不能包含重复的三元组。
yi0115 天前
人工智能·笔记·python·算法·leetcode·排序算法·双指针
DAY23: LeetCode 27 → 283:从移除元素到移动零,理解快慢指针的两种思路LeetCode 27:移除元素这道题的要求是:给定一个数组 nums 和一个值 val,把数组中所有等于 val 的元素移除,并返回剩余元素的数量。
兔小盈11 天前
算法·双指针
有效三角形个数与和为s的两个数字给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。示例题目要求返回所有数组中可以组成有效三角形的元素组合。
a187927218311 个月前
算法·leetcode·双指针·滑动窗口·原理·相向双指针·算法讲解
【算法】双指针与滑动窗口(三):相向双指针——比较、排除、收缩双指针系列第三篇,相向双指针专题。三道题讲透"比较、排除、收缩":LC167 两数之和 II(裸题;一版过,但这题的判决书有个反直觉的结构——淘汰 r 时,论证的全部内容却是 l 的未来:"不动的那边"才是死刑判决的依据);LC11 盛最多水的容器(排除论证的原题;代码一次过、证明欠着的病历——“谁矮动谁"凭什么安全,矮边的所有剩余配对上限 ≤ 已记录值;以及"排序的自由度”:LC15 的下标是身份标签、LC11 的下标是坐标);LC15 三数之和(boss;四版弧线——把双指针写成递归回溯的六 if 平
a187927218311 个月前
算法·leetcode·双指针·滑动窗口·原理·模板·算法讲解
【算法】双指针与滑动窗口(二):滑动窗口——吃进、判定、吐出双指针系列第二篇,滑动窗口专题。三道题讲透"吃进、判定、吐出":LC3 无重复最长子串(最长型;从 DP 的"断链"惯性走到滑窗的"收缩",五版弧线的教训,以及重做时的一次架构升级——计数版把哨兵坑和窗口外旧出现坑整类消灭);LC209 长度最小的子数组(最短型;“移出前预判"与"破坏后记录"两种收缩写法;以及本文最值钱的一段——负数死亡证明:正整数给滑窗的命根子是"移出单调减”,负数打破它之后存在"先蹲后跳"的移出路径,双指针的 l 只进不退、无法表达起点回退,滑窗当场死亡——这就是 LC862 必须换
elseif1231 个月前
c++·算法·二分·双指针
【双指针/二分】P1102 A-B 数对给出一串正整数数列以及一个正整数 CCC,要求计算出所有满足 A−B=CA - B = CA−B=C 的数对的个数(不同位置的数字一样的数对算不同的数对)。
a187927218311 个月前
算法·leetcode·区间·双指针·滑动窗口·原理·算法讲解
【算法】双指针与滑动窗口(一):框架总纲——三类问题、一个原理与判决书双指针/滑动窗口系列第一篇,只讲框架不讲题。这个结构本身是一次纠错的结果:我先前按"一题一题做、批改里提炼要点"的方式学这个系列(LC3 写了五版、LC15 四版、LC76 一版过但被拷问),十来道题做完,某天被自己问倒——"双指针的核心原理到底是什么?"竟然答不上来。回溯系列我有"选择、递归、回退"六个字,DP 系列我有手推表,双指针……只有一堆散落的教训。这篇就是补课:一个统一原理(被跳过的候选不可能是答案)、三大类地图(滑动窗口/相向双指针/二分,各自的模板与旋钮)、一份判决书规范(排除要有论证、幸
Tisfy2 个月前
算法·leetcode·字符串·题解·模拟·双指针·滑动窗口
LeetCode 3090.每个字符最多出现两次的最长子字符串:二重循环 / 滑动窗口力扣题目链接:https://leetcode.cn/problems/maximum-length-substring-with-two-occurrences/
琥珀色糖2 个月前
算法·leetcode·职场和发展·双指针·移动零
leetcode hot100题(持续更新)移动零(双指针)分析:指针1:遍历数组,从数组最开头遍历到结尾,目的是找出非0元素指针2:开始指向数组最开头元素,每当指针1找到一个非0元素,就把这个元素安排到指针2对应位置上,同时指针2指向数组下一个位置。
旖旎夜光2 个月前
数据结构·c++·算法·leetcode·双指针
LeetCode 202:快乐数(双指针问题) —— 题解🎯 欢迎来到「快乐数」题解之旅! 本文将带你从“判断一个数在迭代平方和过程中是否会陷入循环”这一数学问题出发,深入理解快慢指针(Floyd判圈算法) 的经典应用,并掌握如何高效检测循环而不必存储历史状态。
旖旎夜光2 个月前
数据结构·c++·算法·leetcode·双指针
LeetCode 11:盛最多水的容器(双指针问题) —— 题解11. 盛最多水的容器 - 力扣(LeetCode)🎯 欢迎来到「盛最多水的容器」题解之旅! 本文将带你从“寻找两条线与 x 轴构成的最大容器”这一几何直觉出发,深入理解双指针(对撞指针) 的经典应用,并掌握如何通过每次移动较短的边来高效逼近最优解。
良木林3 个月前
javascript·算法·leetcode·双指针·滑动窗口
滑动窗口 - LeetCode hot 100@jarringslee在我目前接触到的算法题中,滑动窗口应该算是双指针的一个重要的分支应用,通常用于解决数组和字符串的区间问题。 它通过使用双指针维护一个动态窗口,在遍历数据(通常是数组或者字符串)时不断调整窗口边界,从而高效快速地找到题目要求的解。 滑动窗口的核心思想是避免重复计算,将O(n2)的暴力循环转化为O(n),更加高效。
Tisfy4 个月前
算法·leetcode·链表·题解·双指针
LeetCode 2095.删除链表的中间节点:两次遍历 / 一次遍历(快慢指针)力扣题目链接:https://leetcode.cn/problems/delete-the-middle-node-of-a-linked-list/
啦啦啦啦啦zzzz4 个月前
c++·算法·双指针
算法总结(双指针)题目一:给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。 例如,对于输入字符串 "a1b2c3",函数应该将其转换为 "anumberbnumbercnumber"。
j7~4 个月前
数据结构·c++·算法·双指针·快乐数·移动零·复写零
【算法】专题一:双指针之移动零,复写零,快乐数常见的双指针有两种形式,⼀种是对撞指针,⼀种是左右指针。 对撞指针:⼀般⽤于顺序结构中,也称左右指针。
江屿风4 个月前
开发语言·c++·笔记·算法·dp·双指针
C++OJ题经验总结(竞赛)4注意:本篇标红字段均是可纳为己用的经验条。OJ题知识归属:1、第一题:动态规划 -> 区间dp(基于区间上某⼀点,划分成左右区间讨论)(线形)
8Qi84 个月前
java·算法·leetcode·双指针·滑动窗口
LeetCode 209. 长度最小的子数组(Minimum Size Subarray Sum)✅ 难度:中等 ✅ 考察点:滑动窗口 / 双指针 / 前缀和优化👉 https://leetcode.com/problems/minimum-size-subarray-sum/