[Algo/Programmers]java-K番号
6045 ワード
[Algorithm/Programmers]java-K番号
問題プラットフォーム難易度タイプ解答リンク問題リンクK番目のプログラムレベル1 Sort に答える質問する
に答える
問題解決の手順は次のとおりです.
1.所与の配列array
のi번째 숫자부터 j번재 숫자까지
を切り取り、
2.並んだ後、
3.k番目の整数を求める.
この順序でコマンドcommands
の2次元配列の長さを繰り返します.public int[] solution(int[] array, int[][] commands) {
int len = commands.length;
int[] ans = new int[len];
// command 수만큼 반복합니다.
for (int i = 0; i < len; i++) {
// slicing한 값을 넣어둘 임시 배열을 생성합니다.
int[] temp = new int[commands[i][1] - commands[i][0] + 1];
int idx = 0;
// 1. 주어진 command대로 slicing합니다.
for (int j = commands[i][0] - 1; j < commands[i][1]; j++) {
temp[idx++] = array[j];
}
// 2. Slicing한 배열을 정렬합니다.
Arrays.sort(temp);
// 3. 해당 command 턴의 답(k번째수)를 ans배열에 넣습니다.
ans[i] = temp[commands[i][2] - 1];
}
return ans;
}
問題は配列で簡単に解決した.
与えられた順序で解く限り,これは簡単な問題である.
Reference
この問題について([Algo/Programmers]java-K番号), 我々は、より多くの情報をここで見つけました
https://velog.io/@rgunny/AlgoProgrammers-자바-K번째수
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
public int[] solution(int[] array, int[][] commands) {
int len = commands.length;
int[] ans = new int[len];
// command 수만큼 반복합니다.
for (int i = 0; i < len; i++) {
// slicing한 값을 넣어둘 임시 배열을 생성합니다.
int[] temp = new int[commands[i][1] - commands[i][0] + 1];
int idx = 0;
// 1. 주어진 command대로 slicing합니다.
for (int j = commands[i][0] - 1; j < commands[i][1]; j++) {
temp[idx++] = array[j];
}
// 2. Slicing한 배열을 정렬합니다.
Arrays.sort(temp);
// 3. 해당 command 턴의 답(k번째수)를 ans배열에 넣습니다.
ans[i] = temp[commands[i][2] - 1];
}
return ans;
}
Reference
この問題について([Algo/Programmers]java-K番号), 我々は、より多くの情報をここで見つけました https://velog.io/@rgunny/AlgoProgrammers-자바-K번째수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol