删除已排序数组中的重复项并限制重复次数

C++ Medium arrays

任务 «删除已排序数组中的重复项并限制重复次数»

给定一个按非递减顺序排序的整数数组。需要删除重复项,使得每个元素最多出现两次,并返回新数组的长度。该长度之后的数组元素无关紧要。解决方案必须在不使用额外内存的情况下完成(原地操作)。

输入格式

第一行包含一个整数 N (1 ≤ N ≤ 10^5) — 数组中的元素数量。第二行包含 N 个由空格分隔的整数 — 按非递减顺序排序的数组元素。

输出格式

一个整数——删除重复项后数组的长度(出现次数不超过两次的元素数量)。

示例

示例 1

输入
1 5
输出
1

示例 2

输入
5 1 2 3 4 5 7
输出
5

示例 3

输入
6 1 1 1 2 2 3
输出
5
main.cpp