双指针算法+例题

1、性质

  • 双指针算法,实质上是把朴素算法O(n^2),发现一些性质,转换成 O(N)时间复杂度。

2、图解+核心思想

3、代码模板 

for(int i=0,j=0;i<n;i++)
{
	while(j<i && check(i,j)) j++;
	//每道题目的具体逻辑
}

4、例题: AcWing 799. 最长连续不重复子序列 - AcWing

  • 题目:

  • 给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。

    输入格式

    第一行包含整数 n。

    第二行包含 n 个整数(均在 0∼10^5范围内),表示整数序列。

    输出格式

    共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。

    数据范围

    1≤n≤10^5

    输入样例:
    5
    1 2 2 3 5
    输出样例:
    3

  • 图解题意:

 

AC代码: 

#include<iostream>
#include <cmath>

using namespace std;

const int N = 1e5+10;
int a[N],s[N];

int main()
{
    int n,res=0;
    cin >> n;
    for (int i = 0; i < n; i ++ )
    {
        cin >> a[i];
    }
    for (int i = 0,j = 0; i < n; i ++ )
    {
        s[a[i]]++;
        while(s[a[i]] > 1)
        {
            s[a[j]]--;
            j++;
        }
        res = max(res,i-j+1);
    }
    cout << res;
    return 0;
}

相关推荐

  1. 指针算法入门 —— 常见例题

    2024-02-18 08:56:04       16 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-18 08:56:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-18 08:56:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-02-18 08:56:04       82 阅读
  4. Python语言-面向对象

    2024-02-18 08:56:04       91 阅读

热门阅读

  1. DAY52:动态规划(打家劫舍系列)

    2024-02-18 08:56:04       53 阅读
  2. 力扣热题100_滑动窗口_3_无重复字符的最长子串

    2024-02-18 08:56:04       59 阅读
  3. 掘根宝典之C++类模板大全

    2024-02-18 08:56:04       29 阅读
  4. 【设计模式】观察者模式Observer Pattern

    2024-02-18 08:56:04       52 阅读
  5. 在Ubuntu-12.04环境下使用新的Rust开发工具

    2024-02-18 08:56:04       48 阅读
  6. UI自动化-(web入门示例)

    2024-02-18 08:56:04       47 阅读
  7. ValueError check_hostname requires server_hostname 报错

    2024-02-18 08:56:04       41 阅读
  8. WordPress Nginx 报错 502 Bad Gateway

    2024-02-18 08:56:04       211 阅读
  9. C语言:螺旋阵

    2024-02-18 08:56:04       47 阅读
  10. Nginx七层负载均衡之动静分离

    2024-02-18 08:56:04       50 阅读