simple_26_remove_duplicate_num
2023-07-25 08:24 作者:reacherway | 我要投稿

題目描述:
給你一個(gè)?升序排列?的數(shù)組?nums
?,請你?原地?刪除重復(fù)出現(xiàn)的元素,使每個(gè)元素?只出現(xiàn)一次?,返回刪除后數(shù)組的新長度。元素的?相對順序?應(yīng)該保持?一致?。然后返回?nums
?中唯一元素的個(gè)數(shù)。
考慮?nums
?的唯一元素的數(shù)量為?k
?,你需要做以下事情確保你的題解可以被通過:
更改數(shù)組?
nums
?,使?nums
?的前?k
?個(gè)元素包含唯一元素,并按照它們最初在?nums
?中出現(xiàn)的順序排列。nums
?的其余元素與?nums
?的大小不重要。返回?
k
?。
? ? 舉例:
輸入:nums = [0,0,1,1,1,2,2,3,3,4]
輸出:5, nums = [0,1,2,3,4]
思路:
通過隊(duì)列(先進(jìn)先出)數(shù)據(jù)結(jié)構(gòu),使用map 來判斷當(dāng)前數(shù)據(jù)是否已經(jīng)重復(fù)。
當(dāng)不是重復(fù)元素:
? 1 ? map 標(biāo)記一下
?2 ?判斷當(dāng)前隊(duì)列是否還有元素
? ? 如果有空位置
? ? ?2.1 當(dāng)前位置需要入隊(duì),空出這個(gè)位置。
? ? 2.2 ? 出隊(duì),用當(dāng)前的值去填充出隊(duì)的這個(gè)位置。
? ? 2.3 ? 更新隊(duì)列
最后 留在隊(duì)列中的元素就是重復(fù)的元素位置,用數(shù)組長度減去隊(duì)列中的長度得到唯一數(shù)的個(gè)數(shù)。