溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java中如何刪除排序數(shù)組中的重復(fù)項

發(fā)布時間:2022-01-17 09:25:33 來源:億速云 閱讀:191 作者:清風(fēng) 欄目:大數(shù)據(jù)

這篇文章主要為大家展示了“java中如何刪除排序數(shù)組中的重復(fù)項”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“java中如何刪除排序數(shù)組中的重復(fù)項”這篇文章吧。

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

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

示例 1:

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

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

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

示例 2:

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

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

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

答案:

 1public int removeDuplicates(int[] nums) {
2    int n = nums.length;
3    if (n < 2)
4        return n;
5    int pos = 2;
6    for (int i = 2; i < n; ++i)
7        if (nums[i] != nums[pos - 2])
8            nums[pos++] = nums[i];
9    return pos;
10}

解析:

題目中說的是排序的數(shù)組,那這就簡單了。代碼比較簡單就不再介紹,下面再來看一下其他的解法。

 1public int removeDuplicates(int[] nums) {
2    int i = 0;
3    for (int n : nums)
4        if (i < 2 || n > nums[i - 2])
5            nums[i++] = n;
6    return i;
7}
8
9public int removeDuplicates(int[] nums) {
10    int n = nums.length, count = 0;
11    for (int i = 2; i < n; i++)
12        if (nums[i] == nums[i - 2 - count])
13            count++;
14        else
15            nums[i - count] = nums[i];
16    return n - count;
17}

解法都大同小異,基本思想還是沒變。

Java的特點有哪些

Java的特點有哪些 1.Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,實現(xiàn)了面向?qū)ο罄碚摚试S程序員以優(yōu)雅的思維方式進行復(fù)雜的編程。 2.Java具有簡單性、面向?qū)ο?、分布式、安全性、平臺獨立與可移植性、動態(tài)性等特點。 3.使用Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等。

以上是“java中如何刪除排序數(shù)組中的重復(fù)項”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI