#3796. 例1-唯一序列
例1-唯一序列
题目描述
给定一个非严格递增排列的整数数组 nums
(即数组中的数字可能重复,但整体呈非递减排列)。请你原地删除重复出现的元素,使得每个元素只保留一次,并且保持相对顺序不变。
删除重复元素后,数组中剩余的元素称为“唯一序列”。请你返回该“唯一序列”中元素的个数,同时要求修改后的数组前面部分保存唯一序列(数组的后面部分的内容不要求有序),且空间复杂度为 \(O(1)\)(即只能使用常数额外空间)。
输入格式
输入的第一行包含一个正整数 \(n\) (\(1 \le n \le 10^5\)),表示数组的长度。
接下来一行包含 \(n\) 个整数,用空格隔开,这 \(n\) 个整数构成非严格递增的数组 nums
。
输出格式
输出一行一个整数,表示删除重复元素后数组中唯一元素的个数。
样例
样例输入
6
1 1 2 2 2 3
样例输出
3
样例说明
输入数组为: 删除重复元素后得到唯一序列为:,唯一元素个数为 3。
备注
- 你应当在原数组上进行修改,不需要额外开辟新的数组存储结果。
- 数组中后面位置的数值不必保证有序,只需要前面部分存放 “唯一序列”。
- 请尽可能设计时间复杂度 \(O(n)\) 的算法。