计蒜客 移除数组中的重复元素 (双指针扫描)
给定一个升序排列的数组,去掉重复的数,并返回新的数组的长度。
例如:
数组A = {1, 1, 2},你的函数应该返回长度2,新数组为{1, 2}
要求:
不能新开数组分配额外的空间。即常数空间限制。
提示:
输入一个整数n,以及其对应的数组A[n],输出新数组长度
样例输入
5
0 0 1 1 2
样例输出
3
1 #include <iostream> 2 using namespace std; 3 int main(){ 4 int n, ans; 5 cin >> n; 6 ans = n; 7 int *a = new int[n]; 8 for(int i = 0; i < n; i++){ 9 cin >> a[i]; 10 } 11 for(int i = 0; i < n-1; i++){ 12 if(a[i] == a[i+1]) 13 ans--; 14 } 15 cout << ans << endl; 16 return 0; 17 }
越努力,越幸运