zl程序教程

双指针算法

  • 基础算法篇——双指针算法

    基础算法篇——双指针算法

    基础算法篇——双指针算法本次我们介绍基础算法中的双指针算法,我们会从下面几个角度来介绍:双指针简介双指针基本使用最长连续不重复字符列数组元素的目标和判断子序列双指针简介首先我们先来简单介绍一下双指针:双指针算法就是采用两个变量作为指针放在数组的某个部位来实现复杂度简化我们来介绍一下双指针的使用场景:双指针通常用于简化双for循环的场景,将复杂度为O(N^2)变为O(N)双指针可以用于单个序列中,例

    日期 2023-06-12 10:48:40     
  • 再谈两指针,两指针实现滑动窗口算法

    再谈两指针,两指针实现滑动窗口算法

    作者 | 梁唐出品 | 公众号:Coder梁(ID:Coder_LT)大家好,我是梁唐。上一篇文章当中我们接触了两指针算法,在上一篇文章当中,我们使用了一快一慢两个指针来访问数组,从而避免了删除元素时需要移动数组的巨大开销。除了可以理解成快慢指针之外,我们还可以换个角度,从区间的层面入手。慢的指针维护了一个全部不等于val的区间,它会在遇到val时停下,而快的指针维护的就是能够覆盖慢指针遇到的va

    日期 2023-06-12 10:48:40     
  • 带你从0->1学习双指针算法

    带你从0->1学习双指针算法

    为啥要用双指针?先试想一下,如果用BF来解题for(i = 0;i < len; i++) for(j = 0;j <= i; j++) if(check(——))复制时间复杂度为O(n^2),没有进行优化,如果数列为单调,(sort后必然单调)可以使用双指针优化,所以核心思想: 将BF算法O(n^2)=>双指针O(n) 在我理解,只要是这种的优化都可以称之为双指针算法

    日期 2023-06-12 10:48:40     
  • LeetCode和面试中的常客,巧妙的两指针算法

    LeetCode和面试中的常客,巧妙的两指针算法

    作者 | 梁唐出品 | 公众号:Coder梁(ID:Coder_LT)大家好,我是梁唐。遗留问题我们先来看看昨天留下的问题,如果数组当中的元素存在重复,让我们返回元素最早出现的位置,应该怎么操作呢?首先可以想到,我们要找target最早出现的位置,等价于寻找小于target的最右边的位置。也就是说我们在二分的时候,如果nums[m] <= target,我们不能让l = m。因为nums[m

    日期 2023-06-12 10:48:40     
  • 双指针算法模板及练习

    双指针算法模板及练习

    文章目录日志统计一般做法用双指针算法改进日志统计小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有 N 行。其中每一行的格式是:ts id复制表示在 ts 时刻编号 id 的帖子收到一个”赞”。现在小明想统计有哪些帖子曾经是”热帖”。如果一个帖子曾在任意一个长度为 D 的时间段内收到不少于 K 个赞,小明就认为这个帖子曾是”热帖”。具体来说,如果存在某个时刻 T 满足该帖在 [T,T

    日期 2023-06-12 10:48:40     
  • 【算法】双指针算法 ( 双指针算法分类 | 相向双指针 | 有效回文串 )

    【算法】双指针算法 ( 双指针算法分类 | 相向双指针 | 有效回文串 )

    文章目录一、双指针算法分类二、相向双指针示例 ( 有效回文串 )一、双指针算法分类面试时经常遇到 限制算法复杂度为 O ( n ) 的情况 , 就需要使用以下算法 :双指针算法 : 设置两个指针 ( 索引 ) , 进行不同方式的遍历 , 使用最高频的算法 ;打擂台算法 : 设置一个擂主值 , 设置为无穷大或无穷小 , 通过遍历让该擂主值与遍历值打擂台 ; 求最大值最小值常用 ;单调栈算法 ;单调队

    日期 2023-06-12 10:48:40     
  • 【算法】双指针算法 ( 有效回文串 II )

    【算法】双指针算法 ( 有效回文串 II )

    算法 系列博客【算法】刷题范围建议 和 代码规范 【算法】复杂度理论 ( 时间复杂度 )【字符串】最长回文子串 ( 蛮力算法 ) 【字符串】最长回文子串 ( 中心线枚举算法 ) 【字符串】最长回文子串 ( 动态规划算法 ) ★ 【字符串】字符串查找 ( 蛮力算法 ) 【字符串】字符串查找 ( Rabin-Karp 算法 )【算法】双指针算法 ( 双指针算法分类 | 相向双指针 | 有效回

    日期 2023-06-12 10:48:40     
  • 双指针算法模板和一些题目

    双指针算法模板和一些题目

    什么是同向双指针? 什么是相向双指针? 双指针的鼻祖题 —— 两数之和 Two Sum 链表上的快慢指针算法 快速排序 & 归并排序   同向双指针 • 相向双指针 • 几乎所有 Two Sum 变种 • Partition • Quick Select • 分成两个部分 • 分成三个部分 • 一些你没听过的(但是面试会考的)排序算法    

    日期 2023-06-12 10:48:40     
  • 洛谷---P1102 A-B 数对---双指针算法

    洛谷---P1102 A-B 数对---双指针算法

    题目链接: P1102 A-B 数对 题目描述: 双指针算法(快慢指针)算法 #include<iostream> #include<

    日期 2023-06-12 10:48:40     
  • 双指针算法模板题目

    双指针算法模板题目

    题目来源:acwing算法基础课 题目链接: 799. 最长连续不重复子序列 题目描述: 双指针(快慢指针)算法代码:

    日期 2023-06-12 10:48:40     
  • 双指针算法

    双指针算法

    1. 验证回文字符串 题目 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: "A man, a plan, a canal: Panama"输出: true示例 2: 输入: "race a car"输出: false 来源:力扣(LeetCode)链接:https://leetcode-cn

    日期 2023-06-12 10:48:40     
  • C语言-函数指针-快速排序算法

    C语言-函数指针-快速排序算法

    概述         使用C语言,实现结构体多元素,排序算法(冒泡排序) 编码环境:Visual Studio 2022 1、code #include <stdio.h> #include <stdlib.h> #include <string.h&

    日期 2023-06-12 10:48:40     
  • LeetCode | 一探环形链表的奥秘【快慢双指针妙解BAT等大厂经典算法题】

    LeetCode | 一探环形链表的奥秘【快慢双指针妙解BAT等大厂经典算法题】

    前言 本文总结了力扣141.环形链表|以及142.环形链表||这两道有关环形链表的求解方案,去求证链表是否带环已经如何找出入环口的结点。 有关环形链表,在BAT等大厂面试中均有出现

    日期 2023-06-12 10:48:40     
  • 算法基础复盘笔记Day02【算法基础】—— 前缀和与差分、双指针算法、位运算、离散化、区间合并

    算法基础复盘笔记Day02【算法基础】—— 前缀和与差分、双指针算法、位运算、离散化、区间合并

    ❤ 作者主页:欢迎来到我的技术博客😎 ❀ 个人介绍:大家好,本人热衷于Java后端开发,欢迎来交流学习哦!( ̄▽&#x

    日期 2023-06-12 10:48:40