刪除排序陣列中重複得元素
阿新 • • 發佈:2019-02-14
給定一個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。
不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 O(1) 額外空間的條件下完成。
示例 1:
給定陣列 nums = [1,1,2], 函式應該返回新的長度 2, 並且原陣列 nums 的前兩個元素被修改為1
,2
。 你不需要考慮陣列中超出新長度後面的元素。
示例 2:
給定 nums = [0,0,1,1,1,2,2,3,3,4], 函式應該返回新的長度 5, 並且原陣列 nums 的前五個元素被修改為0
,1
,2
,3
,4
。 你不需要考慮陣列中超出新長度後面的元素。
int removeDuplicates(int* nums, int numsSize) { int i = 0; for (int j=0;j<numsSize;j++) { int n=nums[j]; if (!i || n > nums[i-1]) nums[i++] = n; } return i; }