説明
30000以上の正の整数nは、n≤10000、k番目の最小の整数nは正の整数(整数と等しいサイズは一度だけカウントされる)ことを要件、k≤1000、正の整数を既存の。
入力
テストデータの複数のセットを含む、第一の試験それぞれのn及びkの行動データが、二行目は、nの値は正の整数であり、整数は、スペースで区切られました。
出力
k番目の最小の整数の値; NO溶液場合、出力「NO結果」。
サンプル入力
10 3
1 3 3 7 2 5 1 2 4 6
サンプル出力
3
溶液は:次のように最初の2つの特定のコードを見ることができない場合、賢いのアレイを使用しますか。
import java.util.Scanner;
public class homework {
public static void Kmin(){
int Kmin[]=new int[30001];
int k=0;
Scanner sc=new Scanner(System.in);
System.out.println("input:");
int n=sc.nextInt();
int key=sc.nextInt();
for(int i=0;i<n;i++){
int temp=sc.nextInt();
if(Kmin[temp]==0)
Kmin[temp]=1;
}
for(int i=1;i<30001;i++){ //找到第K小的整数
if(Kmin[i]!=0){
k++;
if(k==key){
System.out.println(i);
}
}
}
}
public static void main(String[] args){
Kmin();
}
}
スクリーンショット結果
利用アレイであり、配列の添字は、要素の値を示し、アレイは特別な意味のアレイに記憶されている最初の三つの特徴の寄せ集めは、最初の章は、重量を達成するために、回数出現数に格納されています表示された二番目の数字が格納された回数の効果は、あまりにも、目的の外観の最大数、これを見つけることができます。三つは、配列の完全な使用は、すべての時間のためのスペースです後ので、より多くのこの機能の問題を解決し、あまりにも多くのスペースを使用しないことを覚えておくことがで問題のために必要とされ、この機能を連続した領域注文されています実際、そのための道は良いが、記憶喪失でした。
さあ!