Me
- 遍历所有数组,统计0的个数
- 倒着把零写入数组末尾
func moveZeroes(nums []int) {
var count, j int
for _, key := range nums {
if key == 0 {
count++
} else{
nums[j] = key
j++
}
}
for i:=len(nums) - count; i < len(nums); i++ {
nums[i] = 0
}
}
最优解(快慢指针)
减少了数组赋值次数

func moveZeroes3(nums []int) {
j := 0
for i := 0; i < len(nums); i++ {
if nums[i] == 0 {
continue
}
nums[j] = nums[i]
if i != j {
nums[i] = 0
}
j++
}
}
本文介绍了一种高效处理数组中零元素的算法,通过遍历数组统计零的数量,并使用快慢指针技术减少数组赋值次数,实现零元素的快速移动至数组末尾,提升算法效率。

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



