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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_41367523/article/details/84558499

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

例如:数组 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());
       
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_41367523/article/details/84558499
今日推荐