给定一个升序排列的数组,去掉重复的数,并输出新的数组的长度。
例如:数组 A={1,1,2},你的程序应该输出 2 即新数组的长度,新数组为 {1,2}。
要求:不能新开数组分配额外的空间,即常数空间限制。
输入格式
输入一个整数 n(1≤n≤1000)。
接下来一行 n 个整数 A i (−1000≤A i ≤1000),表示数组 A 中的每个元素。
输出格式
输出一个整数,表示新数组长度。
样例输入 复制
5
0 0 1 1 2
样例输出 复制
3
import java.util.Scanner;
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] array;
array = new int[n];
for (int i = 0; i < n; i++) {
array[i] = scanner.nextInt();
}
f(array);
}
public static void f(int arr[]){
HashMap sHashMap = new HashMap();
for (int i = 0; i < arr.length; i++) {
sHashMap.put(arr[i], i);
}
System.out.println(sHashMap.size());
}
}