Java算法題:刪除排序數(shù)組中的重復(fù)項(xiàng)

給定一個(gè)排序數(shù)組,你需要在原地刪除重復(fù)出現(xiàn)的元素,使得每個(gè)元素只出現(xiàn)一次,返回移除后數(shù)組的新長度。

不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在使用 O(1) 額外空間的條件下完成。

示例?1:

給定數(shù)組nums=[1,1,2], 函數(shù)應(yīng)該返回新的長度2, 并且原數(shù)組nums 的前兩個(gè)元素被修改為1,2。 你不需要考慮數(shù)組中超出新長度后面的元素。

示例?2:

給定 nums =[0,0,1,1,1,2,2,3,3,4],函數(shù)應(yīng)該返回新的長度5, 并且原數(shù)組nums 的前五個(gè)元素被修改為0,1,2,3,4。你不需要考慮數(shù)組中超出新長度后面的元素。

說明:

為什么返回?cái)?shù)值是整數(shù),但輸出的答案是數(shù)組呢?

請注意,輸入數(shù)組是以“引用”方式傳遞的,這意味著在函數(shù)里修改輸入數(shù)組對于調(diào)用者是可見的。

這道題挺簡單的:關(guān)鍵點(diǎn)在于 返回的結(jié)果只需要返回新數(shù)組的長度就可以了,換句話說是 統(tǒng)計(jì)出數(shù)組里面有多少個(gè)不同的元素。

但是它說不要使用新的數(shù)組空間,所以只能在原來的數(shù)組上操作,還有一句話需要理解的是:你不需要考慮數(shù)組中超出新長度后面的元素。所以這道題就可以先排成有序數(shù)組,再遍歷數(shù)組的時(shí)候直接把不同于上一個(gè)值的元素直接賦值給當(dāng)前的下標(biāo),然后再加一個(gè)計(jì)數(shù)器就行了。


題目來源:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/description/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容