数糖纸(离散化)
鏈接:https://ac.nowcoder.com/acm/contest/372/D
來源:牛客網
題目描述
可能很多人要吐槽為什么標題不是“救救blabla”了。
怪人PM6喜歡數糖紙,不同的糖紙有不同的顏色,一共有 N 張糖紙,第 i 張糖紙顏色為 Ci ,它們的位置都是固定的。PM6喜歡五彩繽紛的糖紙,所以他不希望有重復的顏色。他有一次機會,可以收集任意一段連續區間內的糖紙。求出PM6最多能收集多少張糖紙。
輸入描述:
第一行一個正整數 N ,表示共有 N 張糖紙。
第二行共有 N 個正整數,第 i 個正整數表示第 i 張糖紙的顏色 Ci
對于20%的數據:1<=N<=100
對于40%的數據:1<=N<=1000
對于100%的數據:1<=N<=1e6,0<=Ci<=1e9
輸出描述:
一個整數表示PM6最多能收集多少張糖紙。
示例1
輸入
復制
5
1 2 2 3 4
輸出
復制
3
說明
PM6可以收集第3到第5張的糖紙,共有三張。
總共有1e9的數據,但是數組卻只有1e6的大小,所以就需要離散化了。其實要是用map的話也可以不用離散化,但是這個題用map的話會超時,只能離散化了。離散化之后,設置兩個指針。如果當前值沒有出現過,就r++,知道當前值之前出現過,然后記錄最大值。這樣之后,在把這一段的值更新為0。
代碼如下:
努力加油a啊,(o)/~
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: Stone game(dp计数上海icp
- 下一篇: How Many Answers Are