[アルゴリズム]K個
7130 ワード
#K番号
配列のi番からj番までを切り取って並べ替えると、k番目の数字を求めようとします.
例えばarrayが[1,5,2,6,3,7,4],i=2,j=5,k=3の場合
arrayの2番目から5番目の場合は[5,2,6,3].
1の配列を並べ替えると[2,3,5,6].
2からの配列の3番目の数字は5です.
配列配列、[i、j、k]を要素とする2次元配列コマンドをパラメータとして与える場合は、commandsのすべての要素に前述の演算を適用した結果を配列に戻してsolution関数を作成します.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
配列のi番からj番までを切り取って並べ替えると、k番目の数字を求めようとします.
例えばarrayが[1,5,2,6,3,7,4],i=2,j=5,k=3の場合
arrayの2番目から5番目の場合は[5,2,6,3].
1の配列を並べ替えると[2,3,5,6].
2からの配列の3番目の数字は5です.
配列配列、[i、j、k]を要素とする2次元配列コマンドをパラメータとして与える場合は、commandsのすべての要素に前述の演算を適用した結果を配列に戻してsolution関数を作成します.
答えを出す。
const solution = (array, commands) => {
let arr = [];
for(let i = 0 ; i < commands.length; i++){
let list = array.slice(commands[i][0] -1 , commands[i][1]).sort((a,b) => a - b )
arr.push(list[commands[i][2] - 1]);
}
return arr;
}
説明する。
function solution(array, commands) {
return commands.map(v => {
return array.slice(v[0] - 1, v[1]).sort((a, b) => a - b).slice(v[2] - 1, v[2])[0];
});
}
Array.slice()
関数を使用して配列を切り取り、新しい配列を再作成します.その後、Array.sort()
関数を使用してソート関数の要素をソートし、Array.slice()
を使用して2次元配列を1次元配列に変換し、結果値を導出します.const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
console.log(animals.slice(2));
// expected output: Array ["camel", "duck", "elephant"]
console.log(animals.slice(2, 4));
// expected output: Array ["camel", "duck"]
console.log(animals.slice(1, 5));
// expected output: Array ["bison", "camel", "duck", "elephant"]
arr.slice([begin[, end]])
Reference
Reference
この問題について([アルゴリズム]K個), 我々は、より多くの情報をここで見つけました https://velog.io/@jangwonyoon/알고리즘-K번째-수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol