zoukankan      html  css  js  c++  java
  • UVa 11572 (滑动窗口) Unique Snowflakes

    滑动窗口挺有意思的,如果符合条件右端点一直向前走,不符合的话,左端点向前走。

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 
     4 set<int> Set;
     5 
     6 const int maxn = 1000000 + 10;
     7 int a[maxn];
     8 
     9 int Scan() {    //输入外挂
    10     int res = 0;
    11     char ch;
    12     while((ch = getchar()) >= '0' && ch <= '9')
    13         res = res * 10 + (ch - '0');
    14     return res;
    15 }
    16 
    17 int main()
    18 {
    19     //freopen("in.txt", "r", stdin);
    20     int T, n;
    21     scanf("%d", &T);
    22     while(T--)
    23     {
    24         Set.clear();
    25         scanf("%d", &n); getchar();
    26         for(int i = 0; i < n; ++i) a[i] = Scan();
    27         int L = 0, R = 0, ans = 0;
    28         for(; L < n; ++L)
    29         {
    30             while(R < n &&!Set.count(a[R])) { Set.insert(a[R]); R++; }
    31             ans = max(ans, R - L);
    32             if(R == n) break;
    33             Set.erase(a[L]);
    34         }
    35         printf("%d
    ", ans);
    36     }
    37 
    38     return 0;
    39 }
    代码君
  • 相关阅读:
    nodejs websocket
    [Java] 数组-01 入门
    [Java] 第一,二章 配置, 基础
    [Java] 第四章 异常机制
    [Java] 第三章 面向对象总结
    [Java] 接口-02
    [Java] 接口-01
    [Java] final 关键字
    [Java] 抽象类
    [Java] 多态-01
  • 原文地址:https://www.cnblogs.com/AOQNRMGYXLMV/p/4278155.html
Copyright © 2011-2022 走看看