移动零

初版(bug)
func moveZeroes(nums []int) {
if len(nums) == 1{
return
}
temp := 0
fp1, fp2 := 0, 1
for _, _ = range nums{
if fp2 == len(nums){
break
}
if nums[fp1] == 0{
if nums[fp2] != 0{
temp = nums[fp1]
nums[fp1] = nums[fp2]
nums[fp2] = temp
fp1++
fp2++
continue
}else{
fp2++
temp = nums[fp1]
nums[fp1] = nums[fp2]
nums[fp2] = temp
fp1++
continue
}
}else{
fp1++
fp2++
continue
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
可读性
func moveZeroes(nums []int) {
if len(nums) == 1 {
return
}
fp1, fp2 := 0, 1
for fp2 < len(nums) {
if nums[fp1] != 0 {
fp1++
fp2++
continue
}
if nums[fp2] != 0 {
nums[fp1], nums[fp2] = nums[fp2], nums[fp1]
fp1++
}
fp2++
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19