LeetCode 26. 刪除排序數(shù)組中的重復(fù)項(xiàng)

題目描述

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

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

示例 1:

給定數(shù)組 nums = [1,1,2],

函數(shù)應(yīng)該返回新的長度 2, 并且原數(shù)組 nums 的前兩個元素被修改為 1, 2。

你不需要考慮數(shù)組中超出新長度后面的元素。

示例 2:

給定 nums = [0,0,1,1,1,2,2,3,3,4],

函數(shù)應(yīng)該返回新的長度 5, 并且原數(shù)組 nums 的前五個元素被修改為 0, 1, 2, 3, 4。

你不需要考慮數(shù)組中超出新長度后面的元素。


說明:

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

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

你可以想象內(nèi)部操作如下:

// nums 是以“引用”方式傳遞的。也就是說,不對實(shí)參做任何拷貝
int len = removeDuplicates(nums);

// 在函數(shù)里修改輸入數(shù)組對于調(diào)用者是可見的。
// 根據(jù)你的函數(shù)返回的長度, 它會打印出數(shù)組中該長度范圍內(nèi)的所有元素。
for (int i = 0; i < len; i++) {
print(nums[i]);
}


瞎分析:

咳咳,大家要仔細(xì)讀題啦,他是讓我們返回新的數(shù)組的長度,然后他傳進(jìn)來的那個列表還是要用的,他后面的測試會針對他傳入的nums,也就是說他傳入的nums實(shí)際上可以認(rèn)為是一個映射??(詞語可能用的不是很恰當(dāng)....)我們可以改變它,然后要改成他題目想要我們改變成的樣子,我剛開始想的是這個list我們可以先把他轉(zhuǎn)成set
集合,然后再把他轉(zhuǎn)成list列表,然后返回新列表的長度....但是我不知道為啥,他執(zhí)行通不過,潤色一下代碼就可以啦哈哈哈哈哈哈哈哈哈哈哈


代碼:

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        new_nums = sorted(list(set(nums)))
        nums.clear()
        nums.extend(new_nums)
        return len(nums)

這里sorted()和sort()函數(shù)是有區(qū)別的,我也貼出來了,
sort 與 sorted 區(qū)別:

sort 是應(yīng)用在 list 上的方法,sorted 可以對所有可迭代的對象進(jìn)行排序操作。

list 的 sort 方法返回的是對已經(jīng)存在的列表進(jìn)行操作,無返回值,而內(nèi)建函數(shù) sorted 方法返回的是一個新的 list,而不是在原來的基礎(chǔ)上進(jìn)行的操作。

還是不懂得就取看看廖雪峰關(guān)于sorted()的教程吧,他講的還挺詳細(xì)的
鏈接點(diǎn)我點(diǎn)我點(diǎn)我

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

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