您的位置:首页 > 其它

移除数组中的重复元素

2018-03-13 08:27 239 查看
给定一个升序排列的数组,去掉重复的数,并输出新的数组的长度。

例如:数组 A = \{1, 1, 2\}A={1,1,2},你的程序应该输出 22 即新数组的长度,新数组为 \{1, 2\}{1,2}。

要求:不能新开数组分配额外的空间,即常数空间限制。

输入格式

输入一个整数 n(1 \leq n \leq 1000)n(1≤n≤1000)。

接下来一行 nn 个整数 A_i(-1000 \leq A_i \leq 1000)A 

i

​ (−1000≤A 

i

​ ≤1000),表示数组 AA 中的每个元素。

输出格式

输出一个整数,表示新数组长度。

样例输入

5

0 0 1 1 2

样例输出

3

代码如下:

import java.util.*;

public class Main{

public static int f(int[] a) {
int num = 0;
int i=0,j=1;
while(j!=a.length) {
if(a[i]==a[j]) {
num++;
}
i++;
j++;
}
return a.length-num;
}

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] a = new int
;
for(int i=0; i<n; i++) {
a[i] = in.nextInt();
}
System.out.println(f(a));
}
}思路:这个题我是找规律做的,并没有用到新的数组辅助。也算是一种投机取巧了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: