求助,leetcode的问题?

qiuquanwu · · 896 次点击
这段代码可以优化成 ```golang func removeDuplicates(nums []int) int { idx := 0 for i, v := range nums { if i == 0 { idx = idx + 1 continue } if v != nums[idx-1] { nums[idx] = v idx = idx + 1 } } return idx } ``` 和你的算法做了下benchmark的比较 ```golang $ go test -bench=".*" goos: windows goarch: amd64 Benchmark_solA_1-8 100000000 18.5 ns/op Benchmark_solB_1-8 50000000 31.3 ns/op Benchmark_solA_2-8 30000000 58.3 ns/op Benchmark_solB_2-8 5000000 294 ns/op PASS ``` solA是上面的程序,solB是你的算法,其实可以看出append操作还是比较耗时间的。 另外,我觉得这个题目不太合适go,毕竟传过来的nums又不一定是原来的nums。
#6
更多评论
```golang func removeDuplicates(nums []int) int { p:=0 ct:=0 idx:=0 for i,v:=range nums { if i==0 { p = v ct = ct + 1 idx = idx + 1 continue } if v!=p { nums[idx]=v ct = ct +1 p = v idx = idx + 1 } } return ct } ```
#1
这里有中文版本的解析,可以看看,希望能帮到你:https://cloud.tencent.com/developer/doc/1101
#2