[蓝桥杯][2019年第十届真题]修改数组(并查集)
生活随笔
收集整理的這篇文章主要介紹了
[蓝桥杯][2019年第十届真题]修改数组(并查集)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
給定一個長度為 N 的數組 A = [A1, A2, · · · AN ],數組中有可能有重復出現 的整數。
現在小明要按以下方法將其修改為沒有重復整數的數組。小明會依次修改 A2,A3,··· ,AN。
當修改 Ai 時,小明會檢查 Ai 是否在 A1 ~ Ai?1 中出現過。如果出現過,則 小明會給 Ai 加上 1 ;如果新的 Ai 仍在之前出現過,小明會持續給 Ai 加 1 ,直 到 Ai 沒有在 A1 ~ Ai?1 中出現過。
當 AN 也經過上述修改之后,顯然 A 數組中就沒有重復的整數了。 現在給定初始的 A 數組,請你計算出最終的 A 數組
輸入
第一行包含一個整數 N。 第二行包含N個整數A1,A2,··· ,AN
輸出
輸出N個整數,依次是最終的A1,A2,··· ,AN。
樣例輸入
5
2 1 1 3 4
樣例輸出
2 1 3 4 5
思路:對于沒有出現過的數字,這一位的答案就是這個數字了,但是下面再出現這個數字的時候,那就要是它的下一位或者再往后了。如果出現過這個數字,我們就將這個數所在集合中最大的數字(祖先)輸出。我們處理完這一位的答案之后,就把這個數和它的下一位用并查集合并在一起。
代碼如下:
努力加油a啊,(o)/~
總結
以上是生活随笔為你收集整理的[蓝桥杯][2019年第十届真题]修改数组(并查集)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谷歌安装器点击没反应(谷歌浏览器官方下载
- 下一篇: [蓝桥杯][2019年第十届真题]糖果(