leetcode题目-删除有序数组中的重复项
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素, 使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
go语言实现
/**
* @Description: 删除重复元素 双指针法
*/
func removeDuplicates(nums []int) int {
var newLen = 1 // 至少一个元素 默认长度 为1
var index1 int = 0
var index2 int = 0
for index2 < len(nums) {
if nums[index1] == nums[index2] {
index2++
} else {
index1++
nums[index1] = nums[index2]
newLen++
}
}
return newLen
}
func removeDuplicates2(nums []int) int {
var newLen = 1 // 至少一个元素 默认长度 为1
var index int = 0
for _, num := range nums {
if num != nums[index] {
index++
nums[index] = num
newLen++
}
}
return newLen
}