【算法】LeetCode算法題-Remove Duplicates from Sorted Array

01 看題和準備

今天介紹的是LeetCode算法題中Easy級別的第8題(順位題號是26)。給定一個已經(jīng)排序(由小到大)的整數(shù)數(shù)組(元素可以重復),計算其中不重復元素的個數(shù)n,并將數(shù)組的前n個元素依次賦值為篩選后的不重復元素。不許使用新數(shù)組接收數(shù)據(jù)。例如:

nums = {1,1,2}
輸出不重復元素的個數(shù)為2
數(shù)組前2個元素為1和2,即nums = {1,2,2}

本次解題使用的開發(fā)工具是eclipse,jdk使用的版本是1.8,環(huán)境是win7 64位系統(tǒng),使用Java語言編寫和測試。

02 分析并解題

特殊情況:如果數(shù)組中元素個數(shù)小于等于1,其不重復元素的個數(shù)即為數(shù)組的長度,也不用重新給前面的元素重新賦值。

獲取第一個元素,與第二個元素比較,如果兩數(shù)不等,count加1,數(shù)組的新第2個元素為原數(shù)組第2個元素,依次往后循環(huán)。

最后count需要加1,因為在第一次循環(huán)兩數(shù)不等的時候,count是從第二個元素開始累加的,還需要算上最開始的第一位元素。

public int removeDuplicates(int[] nums) {
    if (nums.length <= 1) {
        return nums.length;
    }
    int count = 0;
    for(int i=0; i<nums.length-1; i++){
        if (nums[i] != nums[i+1]) {
            count++;
            nums[count] = nums[i+1];
        }
    }
    return count+1;
}

03 小結(jié)

此題比較簡單,如果大家有什么好的解法思路、建議或者其他問題,可以下方留言交流,點贊、留言、轉(zhuǎn)發(fā)就是對我最大的回報和支持!

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

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

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