先预处理某个数出现一次的区间,考虑分治$[l,r]$,首先找到$[l,r]$出现一次的数某个数$p$,$[l,p-1],[p+1,r]$继续寻找,显然如果某个数在最左边或最右边,就会产生$n^2$的假算法。考虑从$l,r$两端搜索$p$,最差情况在中间,那么复杂度就是$O(n\log n)$
代码
1 |
|
先预处理某个数出现一次的区间,考虑分治$[l,r]$,首先找到$[l,r]$出现一次的数某个数$p$,$[l,p-1],[p+1,r]$继续寻找,显然如果某个数在最左边或最右边,就会产生$n^2$的假算法。考虑从$l,r$两端搜索$p$,最差情况在中间,那么复杂度就是$O(n\log n)$
1 |
|