#3796. 例1-唯一序列

例1-唯一序列

题目描述

给定一个非严格递增排列的整数数组 nums(即数组中的数字可能重复,但整体呈非递减排列)。请你原地删除重复出现的元素,使得每个元素只保留一次,并且保持相对顺序不变。

删除重复元素后,数组中剩余的元素称为“唯一序列”。请你返回该“唯一序列”中元素的个数,同时要求修改后的数组前面部分保存唯一序列(数组的后面部分的内容不要求有序),且空间复杂度为 \(O(1)\)(即只能使用常数额外空间)。

输入格式

输入的第一行包含一个正整数 \(n\) (\(1 \le n \le 10^5\)),表示数组的长度。
接下来一行包含 \(n\) 个整数,用空格隔开,这 \(n\) 个整数构成非严格递增的数组 nums

输出格式

输出一行一个整数,表示删除重复元素后数组中唯一元素的个数。

样例

样例输入

6
1 1 2 2 2 3

样例输出

3

样例说明

输入数组为:[1,1,2,2,2,3][1, 1, 2, 2, 2, 3] 删除重复元素后得到唯一序列为:[1,2,3][1, 2, 3],唯一元素个数为 3。


备注

  • 你应当在原数组上进行修改,不需要额外开辟新的数组存储结果。
  • 数组中后面位置的数值不必保证有序,只需要前面部分存放 “唯一序列”。
  • 请尽可能设计时间复杂度 \(O(n)\) 的算法。