[Golang]力扣LeetBook—初级算法—数组—删除排序数组中的重复项
题目:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
链接: 力扣LeetBook—初级算法—数组—删除排序数组中的重复项.
示例 1:
输入:nums = [1,1,2]
输出:2, nums = [1,2]
示例 2:
输入:nums = [0,0,1,1,1,2,2,3,3,4]
输出:5, nums = [0,1,2,3,4]
标签:数组、双指针
解题思路:对称交换即
主要Go代码如下:
func removeDuplicates(nums []int) int {
var i=0
if len(nums) == 0 {
return 0
} else {
for j := 1; j<len(nums); j++ {
if nums[j] != nums[i] {
i = i + 1
nums[i] = nums[j]
}
}
return i+1
}
}
提交截图: