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。...