版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/weixin_43851310/article/details/88092670
package main
import "fmt"
//遍历数据,如果一个数值不为0,提至最前,一次操作,最后把所有0补上
func moveZeroes(nums []int) {
no := 0
for i := 0; i < len(nums); i++{
if nums[i] != 0 {
nums[no] = nums[i]
no++
}
}
for j := no; j < len(nums); j++ {
nums[j] = 0
}
fmt.Println(nums)
}
//类似冒泡排序,遍历数组,碰到非0就置换到最前面,依次排列
func moveZeroes2(nums []int) {
k := 0
for i := 0; i < len(nums); i++{
if nums[i] != 0 {
nums[i],nums[k] = nums[k],nums[i]
k++
}
}
fmt.Println(nums)
}
func main() {
nums := []int{0,0,1,3,12}
moveZeroes2(nums)
}
Output:
[1 0 0 3 12]
[1 3 0 0 12]
[1 3 12 0 0]
[1 3 12 0 0]