前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简单的双指针问题

简单的双指针问题

原创
作者头像
Johns
修改2022-08-18 09:10:36
3260
修改2022-08-18 09:10:36
举报
文章被收录于专栏:代码工具代码工具

题目: 有一个先升后降序的数组, 要求进行驱去重并排序

例如: 123454310 结果: 012345

例如: 123854320 结果: 012358

解题思路: 直接使用双指针,每次选出最小的进行append到result种, append前检查一下当前值是否等于result里面最大值便可,等于的话就需要跳过.

代码语言:go
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档