題目描述
明明想在學校中請一些同學一起做一項問卷調查,爲了實驗的客觀性,他先用計算機生成了N個1到1000之間的隨機整數(N≤1000),對於其中重複的數字,只保留一個,把其餘相同的數去掉,不同的數對應着不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成“去重”與“排序”的工作(同一個測試用例裏可能會有多組數據,希望大家能正確處理)。
Input Param
n 輸入隨機數的個數
inputArray n個隨機整數組成的數組
Return Value
OutputArray 輸出處理後的隨機整數
注:測試用例保證輸入參數的正確性,答題者無需驗證。測試用例不止一組。
題目分析
這道題,本意是放在數組中進行操作的,可是一看到去重和排序,腦子裏就只剩下 TreeSet 了。
另外,在做這道題的時候,進入了一個誤區,其他方面都很好,一次性就寫出了核心代碼,就是自己少看了幾行字:測試用例不止一組。
因此,在測試幾次不通過的時候,最終還是在外圈加入了一個 while 循環。
還有就是數組越界的問題,在數組中肯定是存在的,可我這是 TreeSet
,就簡單的加了一個判斷。
java 代碼
package org.feng.nowcoder;
/**
* Created by Feng on 2020/2/13 13:34
* CurrentProject's name is java8
* 明明的隨機數
* @see java.util.TreeSet 去重和排序
* @author Feng
*/
public class Main {
public static void main(String[] args){
java.util.Scanner input = new java.util.Scanner(System.in);
while(input.hasNext()){
// 輸入 N
int number = input.nextInt();
if(number > 1000){
return;
}
// 存儲每組測試數據到 TreeSet 中
java.util.TreeSet<Integer> treeSet = new java.util.TreeSet<>();
for(int i = 0; i < number; i++){
treeSet.add(input.nextInt());
}
// 輸出數據到控制檯
treeSet.forEach(System.out::println);
}
}
}