Problem: HJ3 明明的随机数
题目描述
描述
明明生成了N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。
数据范围: ,输入的数字大小满足
输入描述:
第一行先输入随机整数的个数 N 。 接下来的 N 行每行输入一个整数,代表明明生成的随机数。 具体格式可以参考下面的"示例"。
输出描述:
输出多行,表示输入数据处理后的结果
示例1
输入: 3
2
2
1
A
输出: 1
2
解题思路
定义一个数组,数据长度为最大长度,将输入的数字逐个加入数组对应的下标单元格中,最后一个单元格清空;循环数组,如果对应元素等于0则不打印,否则打印。
算法流程
- 输入字符串word,字符cha
- 定义count,统计
- 循环字符串
- 如果字符串当前字符等于cha,count加1
- 输出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);
}
}
}
}
复杂度
- 时间复杂度:
添加时间复杂度, 示例:
- 其中n是输入的整数的数量。代码使用一个循环来读取输入的整数,并在数组中进行计数。循环的次数取决于输入的整数的数量。
- 空间复杂度:
添加空间复杂度, 示例:
- 因为它只使用了一个固定大小的数组来存储整数的计数。无论输入的整数的数量如何,数组的大小都是固定的。因此,空间复杂度不随输入的规模而变化。