題目詳情
給你一個長度爲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,剛開始用的是二叉樹,傻子都知道會超時,不過我還是提交了(
呵呵,我不怕傻,不怕犯錯)。
代碼如下: