Programmers: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関数を作成します.

せいげんじょうけん

  • arrayの長さは100を超えない.
  • arrayの各要素は1または100未満です.
  • コマンドの長さは50を超えません.
  • コマンドの各要素の長さは3です.
  • \ I/O

    array	                commands	                        return
    [1, 5, 2, 6, 3, 7, 4]	[[2, 5, 3], [4, 4, 1], [1, 7, 3]]	[5, 6, 3]

    I/O例説明


    [1,5,2,6,3,7,4]を2番目から5番目に切り取り、並べ替えます.[2,3,5,6]の3番目の数字は5です.
    [1,5,2,6,3,7,4]を4番目から4番目に切り取り、並べ替えます.[6]の最初の数字は6である.
    [1,5,2,6,3,7,4]最初から7番目にカット[1.2.3.4.5.6.7]の3番目の数字は3です.

    私が作った答え

    function solution(array, [i,j,k]) {
        const answer = array
        .slice(i-1, j)
        .sort((a, b) => a - b);
        return answer[k-1];
    }
  • でインデックス番号を切断、ソート、および返す方法でアクセスします.
  • 最初はコマンドで3つの変数を与えてコードを実行して未定義のエラーを発見しましたが、うーん、vsコードで変換するとき、効果はいいですね?やりながら問題を読み直す
  • はどのように並べられたのか、グーグルゲームをしながら、結局解けずに答えをグーグル化しました.
  • 他人の答え

    function solution(array, commands) {
      let newArr=[];
      for(let i=0; i<commands.length; i++){
          let arr =array.slice(commands[i][0]-1,commands[i][1]);
            arr.sort(function(a,b){
              return a-b;
          });
          newArr.push(arr[commands[i][2]-1]);
      }
        return newArr;
    }
  • 1)コマンド内でforループを返す必要があります.
  • 2)配列中の配列が以下のように見えることを認識し,コードを書き直した.
  • let array = [[2, 5, 3], [4, 4, 1], [1, 7, 3]];
    console.log(array[0]); //[2, 5, 3]
    console.log(array[1][2]); //1

    やり直す答え

    function solution(array, commands) {
      let answer = [];
      
      for (let i = 0; i < commands.length; i++) {
          let a = array
          .slice(commands[i][0] - 1, commands[i][1])
          .sort((a, b) => a - b);
        
          answer.push(a[commands[i][2] - 1]);
      }
      return answer;
    }
  • が再作成されましたが、エラーが発生しました.
  • なので[commands[i][2]-1を[commands[i][2]-1とする.(2)for文にlet iは宣言されず、iのみが書かれています...
  • 些細なところでミスをして、どうして一日中どこが間違っているのかと聞いて、怒って寝ていた昨日の気まずい朝.