独特区间

题目详情

给你一个长度为n的正整数序列A1,A2,A3...An,请你求出有多少个独特区间,独特区间就是一个连续的并且区间

里的每个数都不相同的子序列。例如:1 2 3 答案就是6,因为每个数都不行同。 1 2 2 答案是4


输入描述:

   输入包含多组测试数据,每组测试数据包含两行,第一行为一个正整数n(0<n<=1000000);第二行包含n个正整数

,每个数都小于2^30,每两个数以空格隔开。


输出描述:

   对于每组测试数据输出相应的答案。


答题说明

样例输入:

5

3 4 5 5 2

3

1 2 3

样例输出:

9

6


思路:感觉也没有什么好说的,假设数组为array,设置两个指标l和r,起初l=0,r=1,然后如果在区间l到r-1没有
找到array[r],或者找到了但是找到的元素的下标小于l(这时记住更新该元素的小标为最新的,即r),那么r就向
右移动,否则,假设找到的元素的下标为l1,那么更新结果,与此同时,更新l为l1. 读者呀,我也不知道如何说了
,具体的看代码吧。

           不过要注意,元素的查找我用的是hash,刚开始用的是二叉树,傻子都知道会超时,不过我还是提交了(
呵呵,我不怕傻,不怕犯错)。

代码如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值