|
@@ -0,0 +1,40 @@
|
|
|
+package main
|
|
|
+
|
|
|
+import "fmt"
|
|
|
+
|
|
|
+func main() {
|
|
|
+ var nums []int
|
|
|
+
|
|
|
+ nums = []int{1, 1, 2}
|
|
|
+ fmt.Println(removeDuplicates(nums), nums)
|
|
|
+
|
|
|
+ nums = []int{1, 1, 2, 2}
|
|
|
+ fmt.Println(removeDuplicates(nums), nums)
|
|
|
+
|
|
|
+ nums = []int{1, 1, 2, 2, 2, 3, 3}
|
|
|
+ fmt.Println(removeDuplicates(nums), nums)
|
|
|
+
|
|
|
+ nums = []int{}
|
|
|
+ fmt.Println(removeDuplicates(nums), nums)
|
|
|
+
|
|
|
+ nums = []int{0, 0, 1, 1, 1, 2, 2, 3, 3, 4}
|
|
|
+ fmt.Println(removeDuplicates(nums), nums)
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+func removeDuplicates(nums []int) int {
|
|
|
+ var cursor, count int = 0, 0
|
|
|
+ for i := 0; i < len(nums); i++ {
|
|
|
+ if i == 0 {
|
|
|
+ count++
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if nums[i] == nums[cursor] {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ cursor++
|
|
|
+ count++
|
|
|
+ nums[cursor] = nums[i]
|
|
|
+ }
|
|
|
+ return count
|
|
|
+}
|