HJ3 明明的随机数

131 阅读2分钟

Problem: HJ3 明明的随机数

题目描述

描述

明明生成了N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。

数据范围: 1n10001≤n≤1000  ,输入的数字大小满足 1500 15001≤500 1≤500

输入描述:

第一行先输入随机整数的个数 N 。 接下来的 N 行每行输入一个整数,代表明明生成的随机数。 具体格式可以参考下面的"示例"。

输出描述:

输出多行,表示输入数据处理后的结果

示例1

输入: 3
2
2
1
A
输出: 1
2

解题思路

定义一个数组,数据长度为最大长度,将输入的数字逐个加入数组对应的下标单元格中,最后一个单元格清空;循环数组,如果对应元素等于0则不打印,否则打印。

算法流程

  1. 输入字符串word,字符cha
  2. 定义count,统计
  3. 循环字符串
  4. 如果字符串当前字符等于cha,count加1
  5. 输出count

代码

import java.util.Scanner;
public class Main {
    public static void main(String []args){
        Scanner in=new Scanner(System.in);
        int arr[]=new int[501];
        for(int i=0;i<501;i++){
            arr[i]=0;
        }
        int count=0;
        while(in.hasNextLine()){
            arr[Integer.valueOf(in.nextLine())]+=1;
            count++;
        }
        arr[count-1]-=1;
        for(int i=0;i<501;i++){
            if(arr[i]!=0){
                System.out.println(i);
            }
        }
    }
}

复杂度

  • 时间复杂度:

添加时间复杂度, 示例: O(n)O(n)

  • 其中n是输入的整数的数量。代码使用一个循环来读取输入的整数,并在数组中进行计数。循环的次数取决于输入的整数的数量。
  • 空间复杂度:

添加空间复杂度, 示例: O(1)O(1)

  • 因为它只使用了一个固定大小的数组来存储整数的计数。无论输入的整数的数量如何,数组的大小都是固定的。因此,空间复杂度不随输入的规模而变化。