超级经典的题目,扫描区间,滑动窗口

对这题目的最大感受就是,单独看这个题目,其实不难,但是很多我感觉挺难或者没做出来的题目,都是由这些若干个经典的算法组合而成的

滑动窗口便是一个典型的例子!!!!遇到过好几道用到滑动窗口的题目

而本题则赤裸裸的滑动窗口

题意:

输入一个长度为n的序列A,找一个尽可能长的子序列使他们之间无重复元素

思路:

第一步,自己暴力模拟

第二步,找规律,尝试着状态转移

第三步,修正,实现

首先不能重复,那么我们先假设区间[l, r] 无重复元素,那么加入一个元素a[r+1],会出现什么变化呢???

如果原来的区间没有a[r+1]那么新的区间仍然是一个无重复元素的区间,否则的话,移动左边界,一直到使他们没有重复

这题wa了几发,,原因是在循环的时候,边界判断错误

实现的话就用cnt[maxn]来记录区间里面的元素信息,右边界右移cnt[x]++,左边界则是cnt[x]--;

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<string>
#include<queue>
#include<cstdlib>
#include<algorithm>
#include<stack>
#include<map>
#include<queue>
#include<vector>
#include<set>
using namespace std;
const int maxn=1e6+5;
int A[maxn];
int main(){
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
int n,t;
cin>>t;
while(t--){
cin>>n;
int r,l,ans;ans=l=r=0;
for(int i=0;i<n;i++) cin>>A[i];
set<int>s;
while(r<n){
while(r<n&&!s.count(A[r])) s.insert(A[r++]);
ans=max(ans,r-l);
s.erase(A[l++]);
}
cout<<ans<<endl;
}
return 0;
}

UVA11572_Unique Snowflakes的更多相关文章

  1. POJ 3349 Snowflake Snow Snowflakes(简单哈希)

    Snowflake Snow Snowflakes Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 39324   Accep ...

  2. Snowflake Snow Snowflakes(哈希表的应用)

    Snowflake Snow Snowflakes Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 27312   Accep ...

  3. poj 3349:Snowflake Snow Snowflakes(哈希查找,求和取余法+拉链法)

    Snowflake Snow Snowflakes Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 30529   Accep ...

  4. POJ 3349 Snowflake Snow Snowflakes

    Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 27598 Accepted: ...

  5. POJ 3349:Snowflake Snow Snowflakes(数的Hash)

    http://poj.org/problem?id=3349 Snowflake Snow Snowflakes Time Limit: 4000MS   Memory Limit: 65536K T ...

  6. 哈希-Snowflake Snow Snowflakes 分类: POJ 哈希 2015-08-06 20:53 2人阅读 评论(0) 收藏

    Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 34762 Accepted: ...

  7. [poj3349]Snowflake Snow Snowflakes(hash)

    Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 37615 Accepted: ...

  8. Hash (poj2002-Squares & poj3349-Snowflake Snow Snowflakes)

    //突然发现好弱,好多基础的算法竟然都不会,哈希这种经典的算法,我貌似基本没怎么做过相关的题0.0 POJ2002 题意:给n个点,问有多少组四个点能组成正方形. 题解:枚举两个点,通过公式算出另外两 ...

  9. POJ 3349 Snowflake Snow Snowflakes(哈希)

    http://poj.org/problem?id=3349 题意 :分别给你n片雪花的六个角的长度,让你比较一下这n个雪花有没有相同的. 思路:一开始以为把每一个雪花的六个角的长度sort一下,然后 ...

随机推荐

  1. 18. Jmeter-取样器二

    jmeter-sampler介绍与使用 JMS Point-to-Point JMS Publisher JMS Subscriber JSR223 Sampler JUnit Request Jav ...

  2. 将QTP运行时的错误截图上传到QC

    Class QCImageErrorCapture Sub Class_Terminate() 'Check if the current test has failed. If failed the ...

  3. Django token 学前小知识

    1,base64 '防君子不防小人' 方法 作用 参数 返回值 b64encode 将输入的参数转化为base64规则的串 预加密的明文,类型为bytes:例:b‘guoxiaonao’ base64 ...

  4. 2019 牛客多校第一场 B Integration

    题目链接:https://ac.nowcoder.com/acm/contest/881/B 题目大意 给定 n 个不同的正整数 ai,求$\frac{1}{\pi}\int_{0}^{\infty} ...

  5. C#读取Xml中出现”&”等特殊符号

    原文:C#读取Xml中出现"&"等特殊符号 C#读取Xml中出现的特殊符号时用ASCII或者转定义名称代替.程序读进来后转成字符串后就自动变成相应的字符了,再度保存时会以正 ...

  6. python3 tkinter模块小项目联系之邮箱客户端

    # -*- coding:utf-8 -*- from tkinter import * from tkinter.messagebox import askyesno, showerror, sho ...

  7. MariaDB学习笔记(一)

    一.数据类型:1.整数类型: TINYINT:1Byte SMALLINT:2Byte MEDIUMINT:3Byte INT:4Byte INTEGER:4Byte BIGINT:8Byte 2.浮 ...

  8. SQL数据库—<10>--查询练习题

    待整理···· 45题.分页查询 学生选课数据库SQL语句练习题(45个题) 练习题网盘地址:点我 create database xxb go use xxb go --表(一)Student (学 ...

  9. device tree DTB DTC 相互转换

    DTB --> DTS ./dtc -I dtb -O dts *.dtb -o *.dts DTS -> DTB ./dtc -I dts -O dtb -o test.dtb test ...

  10. Java高频经典面试题(第一季)四:方法的参数传递机制

    考点? 方法的参数传递机制 String,包装类等对象的不可变性 方法的参数传递机制: ①形参是基本数据类型 传递数据值 ②实参是引用数据类型 传递地址值 特殊的类型:String.包装类等对象不可变 ...