func removeDuplicates(nums []int) int {
n := 0
for _, num := range nums {
if n == 0 {
n++
continue
} else {
if nums[n-1] == num {
continue
} else {
nums[n] = num
n++
}
}
}
return n
}
解题思路二(用空间换时间):
通过map存储出现过的元素,若元素未出现过,则记录并按先后顺序从数组头部覆盖写入
仅需要将每个第一次出现的元素按先后顺序从数据头部重新覆盖写入
func removeDuplicates(nums []int) int {
numsMap:=map[int]int{}
n:=0
for _,num:=range nums{
if _,has:=numsMap[num];!has{
nums[n]=num
n++
numsMap[num]=1
}
}
return n
}