給定乙個排序陣列,你需要在 原地 刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。
不要使用額外的陣列空間,你必須在 原地 修改輸入陣列 並在使用 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...