-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path283.go
More file actions
38 lines (33 loc) · 728 Bytes
/
Copy path283.go
File metadata and controls
38 lines (33 loc) · 728 Bytes
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
package main
import "fmt"
func moveZeroes(nums []int) {
l,r := 0,0
for ; r<len(nums); r++ {
if nums[r]!=0 {
nums[l], nums[r] = nums[r],nums[l]
l++
}
}
}
func moveZeroes1stAttempt(nums []int) {
zeroi := -1
for i:=0; i<len(nums); {
for ; zeroi==-1 && i<len(nums); i++ {
if nums[i] == 0 {
zeroi = i
}
}
for ;i<len(nums) && nums[i]==0; i++ { }
if i < len(nums) {
nums[zeroi],nums[i] = nums[i],nums[zeroi]
i = zeroi + 1
zeroi = -1
}
}
}
func main() {
nums := []int{0,1,0,2,3}
fmt.Println(nums)
moveZeroes(nums)
fmt.Println(nums)
}