update 80

This commit is contained in:
novahe
2021-05-23 17:25:26 +08:00
parent 6d2d38e124
commit 44c68a333a
3 changed files with 15 additions and 61 deletions

View File

@ -1,35 +1,12 @@
package leetcode
func removeDuplicates80(nums []int) int {
if len(nums) == 0 {
return 0
}
last, finder := 0, 0
for last < len(nums)-1 {
startFinder := -1
for nums[finder] == nums[last] {
if startFinder == -1 || startFinder > finder {
startFinder = finder
}
if finder == len(nums)-1 {
break
}
finder++
}
if finder-startFinder >= 2 && nums[finder-1] == nums[last] && nums[finder] != nums[last] {
nums[last+1] = nums[finder-1]
nums[last+2] = nums[finder]
last += 2
} else {
nums[last+1] = nums[finder]
last++
}
if finder == len(nums)-1 {
if nums[finder] != nums[last-1] {
nums[last] = nums[finder]
}
return last + 1
func removeDuplicates(nums []int) int {
slow := 0
for i, v := range nums {
if i < 2 || nums[slow-2] != v {
nums[slow] = v
slow++
}
}
return last + 1
return slow
}

View File

@ -61,7 +61,7 @@ func Test_Problem80(t *testing.T) {
for _, q := range qs {
_, p := q.ans80, q.para80
fmt.Printf("【input】:%v 【output】:%v\n", p.one, removeDuplicates80(p.one))
fmt.Printf("【input】:%v 【output】:%v\n", p.one, removeDuplicates(p.one))
}
fmt.Printf("\n\n\n")
}

View File

@ -67,38 +67,15 @@ for (int i = 0; i < len; i++) {
package leetcode
func removeDuplicates80(nums []int) int {
if len(nums) == 0 {
return 0
}
last, finder := 0, 0
for last < len(nums)-1 {
startFinder := -1
for nums[finder] == nums[last] {
if startFinder == -1 || startFinder > finder {
startFinder = finder
}
if finder == len(nums)-1 {
break
}
finder++
}
if finder-startFinder >= 2 && nums[finder-1] == nums[last] && nums[finder] != nums[last] {
nums[last+1] = nums[finder-1]
nums[last+2] = nums[finder]
last += 2
} else {
nums[last+1] = nums[finder]
last++
}
if finder == len(nums)-1 {
if nums[finder] != nums[last-1] {
nums[last] = nums[finder]
}
return last + 1
func removeDuplicates(nums []int) int {
slow := 0
for i, v := range nums {
if i < 2 || nums[slow-2] != v{
nums[slow] = v
slow ++
}
}
return last + 1
return slow
}