题目: 有一个先升后降序的数组, 要求进行驱去重并排序
例如: 123454310 结果: 012345
例如: 123854320 结果: 012358
解题思路: 直接使用双指针,每次选出最小的进行append到result种, append前检查一下当前值是否等于result里面最大值便可,等于的话就需要跳过.
func mergeSortArr(nums []int) []int {
l, r := 0, len(nums)-1
var ret []int
if nums[l] >= nums[r]{
ret = append(ret, nums[r])
}else{
ret = append(ret, nums[l])
}
for l <= r {
if nums[l] >= nums[r] {
if ret[len(ret)-1] != nums[r] {
ret = append(ret, nums[r])
}
r--
}else{
if ret[len(ret)-1] != nums[l] {
ret = append(ret, nums[l])
}
l++
}
}
return ret
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。