LeetCode题目
代码实现:GO语言
func removeDuplicates(nums []int) int {
if len(nums)==0{
return 0
}
fast,slow:=0,0
for fast<len(nums){
// 如果快指针和慢的不相同让慢指针继续 并将快指针的值给慢指针 快指针继续前进
if nums[slow]!=nums[fast]{
slow++
nums[slow]=nums[fast]
}
fast++
}
// 最后nums[0..slow]就是最终不重复的排序数组
return slow+1
}
解题思路:双指针求解
利用快慢指针,fast用来遍历数组中所有元素来探路,找到不重复就让slow往前走一步并将那个不重复的元素交给slow指针的位置,最终slow[0…slow]就是最终的结果。