计算客刷题笔记

移除数组中的重复元素

2018-04-20  本文已影响10人  Airycode

题目链接https://nanti.jisuanke.com/t/11
给定一个升序排列的数组,去掉重复的数,并输出新的数组的长度。

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

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

输入格式

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

接下来一行 nn 个整数 A_i(-1000 \leq A_i \leq 1000)A
i
​ (−1000≤A
i
​ ≤1000),表示数组 A 中的每个元素。

输出格式

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

样例输入

5
0 0 1 1 2
样例输出

3
代码实现:

import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = 0;
 
        if (sc.hasNext()) {
            n = sc.nextInt();
        } else {
            System.out.println(0);
            return;
        }
 
        int[] ints = new int[n];
 
        for (int i = 0; i < n; i++) {
            int d = sc.nextInt();
            ints[i]=d;
        }
 
        for (int i = 0; i < ints.length-1; i++) {
            int anInt = ints[i];
            if (anInt == ints[i + 1]) {
                n--;
            }
        }
 
        System.out.println(n);
    }
}
上一篇下一篇

猜你喜欢

热点阅读