题目:
描述
老师给了小乐乐一个正整数序列,要求小乐乐把这个序列去重后按从小到大排序。但是老师给出的序列太长了,小乐乐没办法耐心的去重并排序,请你帮助他。
输入描述:
第一行包含一个正整数n,表示老师给出的序列有n个数。接下来有n行,每行一个正整数k,为序列中每一个元素的值。(1 ≤ n ≤ 105,1 ≤ k ≤ n)
输出描述:
输出一行,为去重排序后的序列,每个数后面有一个空格。
示例1
输入:
4 2 2 1 1
输出:
1 2
法一解题思路:如果元素为1,那么就放在下标为1的位置,如果元素为2,就放在下标为2的位置,以此类推
代码如下:
法二:双指针删除有序数组的重复项
p为慢指针,q为快指针,p指向第一个元素,q指向第二个元素,但p和q所指的元素相同时,p向后移一位,当p和q所指的元素不同时,p向后移一位,并将q所指的元素覆盖掉p移一位后所指的元素,反复循环,直到p遍历完数组,最后返回p所走过的元素个数,即但前p所指的元素下标去加一
代码如下: