刪除排序陣列中的重複項

2021-10-23 03:55:45 字數 1578 閱讀 4956

t題目描述: 給定乙個排序陣列,你需要在 原地 刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。

示例 1:

給定陣列 nums = [1, 1, 2],

示例 2:

給定 nums = [0, 0, 1, 1, 1, 2, 2, 3, 3, 4],

解題思路:

比對慢指標slow的值和快指標fast的值,如果不一樣,那麼慢指標的下乙個位置儲存快指標的值.(即將快指標的值賦值給慢指標,依次迴圈變化)

#include

#include

intremoveduplicate

(int nums,

int size)

}return s +1;

}void

print

(int nums,

int ret)

printf

("\n");

}int

main()

;int size =

sizeof

(nums)

/sizeof

(nums[0]

);int ret=

removeduplicate

(nums, size)

;print

(nums, ret)

;system

("pause");

return0;

}

執行結果:

!

[在這裡插入描述]

## 方法3

:#include

#include

intremoveduplicate

(int arr,

int size)

else

}//當j跳出陣列的時候,最後乙個元素肯定不重複,也要給複製過去

if(i

return idx;

}int

main()

;int size =

sizeof

(arr)

/sizeof

(arr[0]

);int ret =

removeduplicate

(arr, size)

;//ret 代表返回的陣列的長度

printf

("不重複元素的個數為: %d\n"

, ret)

;for

(int i =

0; i < ret; i++

)printf

("\n");

system

("color a");

system

("pause");

return0;

}

執行結果:

刪除排序陣列中的重複項

題目描述 給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。示例 給定陣列 nums 1,1,2 函式應該返回新的長度2,並且原陣列 nums 的前兩個元素被修改為...

刪除排序陣列中的重複項

給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。示例 1 給定陣列 nums 1,1,2 函式應該返回新的長度 2,並且原陣列 nums 的前兩個元素被修改為 1...

刪除排序陣列中的重複項

給定陣列 nums 1,1,2,2 函式應該返回新的長度 2,並且原陣列 nums 的前兩個元素被修改為 1,2。你不需要考慮陣列中超出新長度後面的元素。給定 nums 0,0,1,1,1,2,2,3,3,4 函式應該返回新的長度 5,並且原陣列 nums 的前五個元素被修改為 0,1,2,3,4。...