计蒜客 移除数组中的重复元素 (双指针扫描)

给定一个升序排列的数组,去掉重复的数,并返回新的数组的长度。

例如:

   数组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 }

 


posted @ 2016-07-14 22:31  琴影  阅读(445)  评论(0编辑  收藏  举报