輸入 n 組資料,每組先給 m(陣列長度),再給 m 個整數,最後給一個 k。對每組陣列去重、升序排序,輸出第 k 大元素(即索引 `length - k`)。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] results = new int[n];
for (int i = 0; i < n; i++) {
int m = in.nextInt();
int[] data = new int[m];
int uniqueCount = 0;
for (int j = 0; j < m; j++) {
int val = in.nextInt();
boolean exists = false;
for (int k = 0; k < uniqueCount; k++) {
if (data[k] == val) { exists = true; break; }
}
if (!exists) data[uniqueCount++] = val;
}
// 只排序有效區間
Arrays.sort(data, 0, uniqueCount);
int k = in.nextInt();
results[i] = data[uniqueCount - k];
}
for (int v : results) System.out.println(v);
}
}
此題考察基本輸入處理、去重、排序、索引轉換。掌握 `Arrays.sort` 區間排序與索引計算,即可穩健解決。