给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
请注意 ,必须在不复制数组的情况下原地对数组进行操作。
地址:https://leetcode.cn/problems/move-zeroes/description/?envType=study-plan-v2&envId=leetcode-75
实现思路: 双指针
- 定义两个指针l,r;
- 若左指针指向0则停下,右指针找到不为0的元素互换;
- 直到右指针指向最后一个元素
func moveZeroes(nums []int) {
l := 0
r := l + 1
length := len(nums)
for r < length {
if nums[l] == 0 {
if nums[r] != 0 {
nums[l] = nums[r]
nums[r] = 0
l++
r++
} else {
r++
}
} else {
l++
r = l + 1
}
}
}
845

被折叠的 条评论
为什么被折叠?



