双指针

还是码字踏实2 天前
数据结构·算法·leetcode·双指针·对撞指针
基础数据结构之数组的双指针技巧之对撞指针(两端向中间):三数之和(LeetCode 15 中等题)**题目:**给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请你返回所有和为 0 且不重复的三元组。 **解题思路:**三层循环暴力法会得到重复结果,所以需要先排序去除重复。 双指针对撞也需要先排序,之后先固定一个初始值,之后需要俩数字和初始值结合起来为0,俩数字如何选择?可以通过第一个数字和最后一个数字加起来看跟
伟大的车尔尼5 天前
双指针
双指针题目:按奇偶排序数组标题:按奇偶排序数组出处:905. 按奇偶排序数组2 级给定一个整数数组 nums \texttt{nums} nums,将 nums \texttt{nums} nums 中的所有偶数元素移动到数组的前面,所有奇数元素移动到数组的后面。
苏纪云7 天前
数据结构·c++·算法·双指针·滑动窗口
算法<C++>——双指针 | 滑动窗口定长滑窗套路: 窗口右端点在 i 时,由于窗口长度为 k,所以窗口左端点为 i−k+1。我总结成三步:入-更新-出。
苏纪云12 天前
c++·算法·链表·双指针
算法<C++>——双指针操作链表将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 示例 2:
以己之15 天前
java·算法·双指针·1024程序员节
11.盛最多水的容器题目来源:https://leetcode.cn/problems/container-with-most-water/description/
伟大的车尔尼16 天前
数据结构·算法·双指针
双指针的概念双指针是用于线性序列的一种思想,线性序列包括数组、字符串和链表。当用于数组和字符串时,双指针一般为两个不同的下标;当用于链表时,双指针一般为两个不同的结点。
gsfl19 天前
算法·双指针
双指针算法一、核心概念 双指针算法是一种通过设置两个指针(索引)在数据结构(如数组、链表)中移动,协同完成问题求解的策略。 核心思想:通过指针的合理移动,减少无效遍历,将原本需要嵌套循环(时间复杂度 (O(n^2))的问题优化为线性时间复杂度(通常 (O(n)) 或 (O(n log n)),同时多数情况下可实现原地操作(空间复杂度 (O(1))。 二、常见类型
老四啊laosi23 天前
算法·leetcode·双指针·移动零
[双指针] 1. 力扣283.移动零题目链接:https://leetcode.cn/problems/move-zeroes/给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序(保持相对顺序不是排序哦)。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。
Tisfy1 个月前
算法·leetcode·题解·双指针
LeetCode 0611.有效三角形的个数:双指针力扣题目链接:https://leetcode.cn/problems/valid-triangle-number/
递归尽头是星辰2 个月前
算法·双指针·滑动窗口·子串/子数组问题
双指针与滑动窗口算法精讲:从原理到高频面试题实战在算法面试中,双指针和滑动窗口如同两把瑞士军刀,能高效解决80%以上的数组和字符串问题。本文将深入解析这两种技术的核心差异,结合力扣高频题目,提供可直接复用的代码。
pusue_the_sun2 个月前
算法·双指针
每日算法题推送我们先来结合实例看一下判断快乐数的整个过程:结合题目可以知道,如果一个数是快乐数,那么这个数最终就会变成1,如果一个数不是快乐数,那么变化序列最终就会陷入循环。想一下,如果题目没有告诉我们“如果一个数不是快乐数,最后会陷入死循环”这句话,我们应该如何来证明这个观点?
爱编程的化学家2 个月前
数据结构·c++·算法·leetcode·双指针·哈希
代码随想录算法训练营第六天 - 哈希表2 || 454.四数相加II / 383.赎金信 / 15.三数之和 / 18.四数之和文档讲解:代码随想录算法训练营 视频讲解:算法视频公开课 状态:思路自己想出来了,但代码没有实现出来首先如果使用暴力方法,也就是对数组nums1到nums2依次遍历,直到找到符合要求的组合,那么时间复杂度为O(n^4)。 如何能减少时间复杂度呢? 想到之间 242.有效字母异位词 的解法,我们可以遍历nums1和nums2,求出二者num1 + num2之和的组合,并记录出现的次数。 接着,我们再遍历nums3和nums4,现在我们的目标值是找到target = 0 - num3 - num4,因为题目要
林木辛2 个月前
算法·leetcode·双指针
LeetCode热题 15.三数之和(双指针)题目最简单的最暴力的想法就是三重循环便利所有可能的三元组,检查他们的和是否为零,并去除重复的组合。这种的时间复杂度是0(n^3)。 这时候我们可以想到 对于 a + b + c = 0求不重复的三元组,等价于 固定一个 a,求 b + c = -a 的不重复的 二元组。 我们可以排一下序,固定a,从0开始往右走,然后对于每个a,b和c双指针,分别从 a + 1 往右和 n - 1 往左走,每次判断一下:
3Cloudream2 个月前
算法·leetcode·字符串·双指针·滑动窗口·哈希表·中等
LeetCode 003. 无重复字符的最长子串 - 滑动窗口与哈希表详解一、文章标题LeetCode 003. 无重复字符的最长子串 - 滑动窗口与哈希表详解二、文章内容算法原理
Q741_1472 个月前
c++·算法·leetcode·双指针·滑动窗口
C++ 力扣 76.最小覆盖子串 题解 优选算法 滑动窗口 每日一题这是封面原图,还有AI生成的动图,嘿嘿:题目链接:最小覆盖子串题目描述:示例 1: 输入:s = “ADOBECODEBANC”, t = “ABC” 输出:“BANC” 解释:最小覆盖子串 “BANC” 包含了字符串 t 的所有字符 ‘A’、‘B’、‘C’。
源代码•宸2 个月前
经验分享·算法·leetcode·双指针
Leetcode—1163. 按字典序排在最后的子串【困难】之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!
KarrySmile2 个月前
数据结构·算法·链表·双指针·快慢指针·hot100·灵艾山茶府
Day8--HOT100--160. 相交链表,206. 反转链表,234. 回文链表,876. 链表的中间结点每日刷题系列。今天的题目是力扣HOT100题单。链表题目。思路【我】:1,计算链表长度2,令A为较短链(如果B是短链,交换链表指针p和长度len)
迷鹿鲲3 个月前
双指针
最短无序连续子数组+双指针题目: 思考:实现:合并遍历搜索:
Q741_1473 个月前
c++·算法·leetcode·双指针·滑动窗口
C++ 力扣 438.找到字符串中所有字母异位词 题解 优选算法 滑动窗口 每日一题题目链接:找到字符串中所有字母异位词题目描述:示例 1: 输入: s = “cbaebabacd”, p = “abc” 输出: [0,6] 解释: 起始索引等于 0 的子串是 “cba”,它是 “abc” 的字母异位词。 起始索引等于 6 的子串是 “bac”,它是 “abc” 的字母异位词。