LeetCode 陣列 刪除排序陣列中的重複項

2022-08-20 10:12:14 字數 774 閱讀 6869

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

不要使用額外的陣列空間,你必須在 原地 修改輸入陣列 並在使用 o(1) 額外空間的條件下完成。

示例:

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

函式應該返回新的長度 5, 並且原陣列 nums 的前五個元素被修改為 0, 1, 2, 3, 4。

你不需要考慮陣列中超出新長度後面的元素。

做這題之前可以先做一下移除元素。使用一快一慢兩個指標,i為慢指標,j為快指標,都從陣列頭開始遍歷。如果nums[i]==nums[j],則j++,繼續遍歷下乙個元素。如果nums[i]!=nums[j],則說明找到了不同的元素,因為重複的元素要保留乙個,所以先將i+1後賦值,也就是nums[++i]=nums[j],當j遍歷完畢時,當前陣列的長度為i+1.**如下:

class solution {

public:

int removeduplicates(vector& nums) {

if(nums.empty())

return 0;

int i=0, j=0;

int curlen = nums.size(); // 當前陣列長度

while(j移除元素:

當遇到移除元素的題目時,可以嘗試使用一快一慢兩個指標來解決。快指標慢指標起始位置相同,當快指標指向的元素與慢指標指向的元素不同時進行相應的操作。

leetcode刪除排序陣列的重複項

是題目描述 最開始想到的是使用雙重for迴圈 def removeduplicates nums type nums list int rtype int for i in range len nums 1 first nums i for j in range i 1,len nums if nu...

Leetcode題解026 刪除排序陣列中的重複項

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

leetcode 刪除排序陣列重複元素

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