天天看點

LeetCode 26.删除排序數組中的重複項題目

LeetCode 26.删除排序數組中的重複項

  • 題目
    • C
      • 思路分析
      • 代碼實作
      • 結果
    • 進階版

題目

給定一個排序數組,你需要在 原地 删除重複出現的元素,使得每個元素隻出現一次,傳回移除後數組的新長度。

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

來源:力扣(LeetCode)

連結:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array

著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

C

思路分析

根據題目的要求,我第一時間想到的是用替代來達到删除的效果。因為他的數組是排序好了的,是以不用去考慮遺漏資料。

代碼實作

int removeDuplicates(int* nums, int numsSize){
    int re=0; //重複元素的數量
    for(int i=0;i<numsSize-1;i++){
        if(nums[i] == nums[i+1]){
            re += 1;
        }
        //向前移動覆寫
        nums[i + 1 -re] = nums[i + 1];
    }
    return (numsSize-re);
}
           

代碼稍微難了解的地方是覆寫吧。

結果

LeetCode 26.删除排序數組中的重複項題目

自我感覺一般吧

進階版

啊這