zoukankan      html  css  js  c++  java
  • 双指针算法_最长连续不重复子列长度

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

    输入格式

    第一行包含整数n。

    第二行包含n个整数(均在0~100000范围内),表示整数序列。

    输出格式

    共一行,包含一个整数,表示最长的不包含重复数字的连续子序列的长度。

    数据范围

    1n1000001≤n≤100000

    输入样例:

    5
    1 2 2 3 5
    

    输出样例:

    3
    
     
    ijij
    1
    j s[j]--j
     
    #include <iostream>//
     
    using namespace std;//
     
    const int N = 100010;//
     
    int n;
    int q[N], s[N];//q,s[i]以q[i]
     
    int main()
    {
      scanf("%d", &n);
      for (int i = 0; i < n; i ++ ) scanf("%d", &q[i]);//
     
      int res = 0;
      for (int i = 0, j = 0; i < n; i ++ )
      {
      s[q[i]] ++ ;//放q[i]
      while (j < i && s[q[i]] > 1) s[q[j ++ ]] -- ;//
      res = max(res, i - j + 1);
    }
     
      cout << res << endl;
     
      return 0;
    }
     
  • 相关阅读:
    细说Cookie(转)
    Custom Exception in ASP.NET Web API 2 with Custom HttpResponse Message
    内核中的定时器
    ibus拼音安装_ubuntu10.04
    linux模块
    zebra/quagga线程分析
    vim常用配置
    rar安装和使用
    zebra/quagga
    netsnmp编译动态库
  • 原文地址:https://www.cnblogs.com/WAsbry/p/13585122.html
Copyright © 2011-2022 走看看