LeetCode - 26. Remove Duplicates from Sorted Array


題目意思:
  在一個排序好的陣列裡,刪除重複的數字,最後輸出實際長度。

解決方式:
  由於也是強調不能另外宣告陣列儲存,想法可以是利用迴圈,每次都取舊陣列的當前迴圈跑到的數字跟新陣列的最後一個數字相比,如果不一樣,就可以將該舊陣列的數字加入新陣列(由於排序過,可以確保加入到新陣列的數字都不會重複),最後由於新陣列是由[0]的位置開始儲存,所以回傳的長度要+1,另外多了需要判斷當陣列長度為零的情況。
int removeDuplicates(int* nums, int numsSize) {
    if(numsSize == 0)
    {
        return 0;
    }
    else
    {
        int i = 0;
        for(int j = 1; j < numsSize; j++)
        {
            if(nums[i] != nums[j])
            {
                nums[++i] = nums[j];
            }
        }
        return i+1;
    }
}

留言