26. 删除排序数组中的重复项
题意
题解
思路:双指针,均从头开始,一个指向不重复的最后一位(指针p),另一个进行遍历操作(指针i),利用有序性,如果指针i>指针p的话,说明到了下一个数,p向下移动一位并赋值为i的值,直到遍历完成。
- 时间复杂度:O(n)
空间复杂度:O(1)
func removeDuplicates(nums []int) int {var p intfor i := 0; i < len(nums); i++ {if nums[i] > nums[p] {p += 1nums[p] = nums[i]}}return p + 1}
结果:
执行用时:8 ms, 在所有 Go 提交中击败了86.24%的用户
- 内存消耗:4.6 MB, 在所有 Go 提交中击败了99.93%的用户
