我把双指针技巧再分为两类,一类是「快慢指针」,一类是「左右指针」。前者解决主要解决链表中的问题,比如典型的判定链表中是否包含环;后者主要解决数组(或者字符串)中的问题,比如二分查找。 一、快慢指针的常见算法 快慢指针一般都初始化指向链表的头结点 head,前进时快指针 fast 在前,慢指针 ...
什么是双指针 对撞指针 快慢指针 双指针,指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同方向 快慢指针 或者相反方向 对撞指针 的指针进行扫描,从而达到相应的目的。 换言之,双指针法充分使用了数组有序这一特征,从而在某些情况下能够简化一些运算。 用法 对撞指针 首尾指针,左右指针 对撞指针是指在有序数组中,将指向最左侧的索引定义为左指针 left ,最右侧的定义为右指针 ...
2022-03-25 16:06 0 818 推荐指数:
我把双指针技巧再分为两类,一类是「快慢指针」,一类是「左右指针」。前者解决主要解决链表中的问题,比如典型的判定链表中是否包含环;后者主要解决数组(或者字符串)中的问题,比如二分查找。 一、快慢指针的常见算法 快慢指针一般都初始化指向链表的头结点 head,前进时快指针 fast 在前,慢指针 ...
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2: ...
基本原理就不做介绍了, 很基础的数据结构课程知识.私下回顾即可,主要学习代码. 1.双指针 https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted/description/?utm_source=LCUS& ...
算法-双指针 心灰尽,有发未全僧。 简介:算法-双指针 一、和为S 的两个数字 1、题目描述 在有序数组中找出两个数,使得和为给定的数 S。如果有多对数字的和等于 S,输出两个数的乘积最小的。 2、解题思路 使用双指针,一个指针指向元素较小的值,一个指针指向元素 ...
双指针算法 什么是双指针 严格的来说,双指针只能说是是算法中的一种技巧。 双指针指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同方向(快慢指针)或者相反方向(对撞指针)的指针进行扫描,从而达到相应的目的。最常见的双指针算法有两种:一种是,在一个序列里边,用两个指针 ...
双指针算法详解 参考链接 链表中快慢指针的妙用 玩转快慢指针 【LeetCode刷题笔记】链表与快慢指针 双指针算法基本原理和实践 练习题 141. 环形链表 面试题 02.08. 环路检测 相关链接 解析滑动窗口 解明动态滑动窗口 ...
Substring with Concatenation of All Words 寻找所有词连接的子串 思路:由于该字串是所有词典中的词连接的,所以该字串长度固定。因此本题可以看作一个滑动窗口的题。为了去除重复工作,每次滑动一个单词的长度,因此起始位置就有n种(n为单词长度)。每种起始位置 ...
滑动窗口 1.概念 滑动窗口是一类很常见的题型,最常见的就是子串问题,因为滑动窗口是一个连续的,所以很容易就是问满足条件的最大或者最小子串啊,这个条件就是不同的地方,但万变不离其宗,滑动窗口就是一个窗口的移动。 总之:子串+最值 --> 滑动窗口 滑动窗口有两大类 固定 ...