K番目の数
問題の説明
配列のi番からj番までを切り取って並べ替えると、k番目の数字を求めようとします.
例えばarrayが[1,5,2,6,3,7,4],i=2,j=5,k=3の場合
1.arrayの2番目から5番目の場合は[5,2,6,3].
2.1からの配列を[2,3,5,6]に並べ替えた.
3.2の配列の3番目の数字は5です.
配列配列、[i、j、k]を要素とする2次元配列コマンドをパラメータとして与える場合は、commandsのすべての要素に前述の演算を適用した結果を配列に戻してsolution関数を作成します.
せいげんじょうけん
I/O例
array commnds return
[1,5,2,6,3,7,4] [[2,5,3],[4,4,1],[1,7,3]] [5,6,3]
私のコメント(JAVA)
import java.util.Arrays;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
for (int i=0; i<commands.length; i++) {
int start = commands[i][0];
int end = commands[i][1];
int num = commands[i][2]-1;
int[] arr = new int[end-start+1];
int index = 0;
for (int j=start; j<=end; j++) {
arr[index] = array[j-1];
index++;
}
Arrays.sort(arr);
answer[i] = arr[num];
}
return answer;
}
}
他の人の解答(JAVA)
import java.util.Arrays;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
for (int i=0; i<commands.length; i++) {
int [] temp = Arrays.copyOfRange(arrays, commands[i][0]-1, commands[i][1]);
Arrays.sort(temp);
answer[i] = temp[commands[i][2]-1];
}
return answer;
}
}
私の解答(JavaScript)
function solution(array, commands) {
const answer = [];
for (let i=0; i<commands.length; i++) {
let start = commands[i][0];
let end = commands[i][1];
let num = commands[i][2]-1;
const arr = array.filter((a,i) => (i >= start-1) && (i <end));
arr.sort((a,b) => a-b);
answer[i] = arr[num];
}
return answer;
}
他の人の解答(JavaScript)
function solution(array, commands) {
return commands.map(command => {
const [sPosition, ePosition, position] = command;
const newArray = array
.filter((value, fIndex) => (fIndex >= sPosition-1) && (fIndex <= ePosition-1)
.sort((a,b) => a-b);
return newArray[position-1];
});
}
Reference
この問題について(K番目の数), 我々は、より多くの情報をここで見つけました https://velog.io/@ehcho/K번째수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol