UVa11572,hdu2756
Updated:
白皮书训练
题目大意:
输入一个长度为n(n<=10^6)的序列A,找到一个尽量长的连续子序列AL~AR,使得该序列中没有相同的元素。
分析:
用set的特殊性质来存储序列,遍历一遍A数组,如果元素没出现在set中,则R++,并加入set,否则记录此时的序列长度,然后不停的
从set中删除序列元素并L++,直到此时A[R]在序列中没出现过,继续重复上述步骤
set中插入删除都是O(logn)的,所以时间复杂度为O(nlogn)
1 |
|
Updated:
白皮书训练
输入一个长度为n(n<=10^6)的序列A,找到一个尽量长的连续子序列AL~AR,使得该序列中没有相同的元素。
用set的特殊性质来存储序列,遍历一遍A数组,如果元素没出现在set中,则R++,并加入set,否则记录此时的序列长度,然后不停的
从set中删除序列元素并L++,直到此时A[R]在序列中没出现过,继续重复上述步骤
set中插入删除都是O(logn)的,所以时间复杂度为O(nlogn)
1 |
|