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);
}
代碼稍微難了解的地方是覆寫吧。
結果

自我感覺一般吧
進階版
啊這