4二次元配列における検索JavaScript

3776 ワード

テーマの説明
1つの二次元配列(各1次元配列の長さは同じ)において、各行は左から右へのインクリメント順に並べられ、各列は上から下へのインクリメント順に並べられます.このような二次元配列と整数を入力して、配列に整数が含まれているかどうかを判断する関数を完成してください.
 
テーマの要求によって、このマトリクスは自分の特徴があります.各ラインは左から右にかけてインクリメントされ、上から下にかけてインクリメントされます.したがって、この情報を利用して元の計算の考え方を簡単にすることができます.
考え方:
まず、配列の右上の数字を選択します.この数字が検索対象の数字に等しい場合、検索を終了します.
この数字が検索対象の数字より大きい場合、その数字のある列は削除されます.
検索する数字より小さい場合は、その数字のある行を削除します.
上記の考え方で検索範囲を減らします.検索する数字が見つかるまで、あるいは見つけられません.
  • コード:
  •  1 function Find(target,array){
     2       var row = array.length;
     3       var i = row - 1;
     4       var j = 0;
     5       while(i>=0&&array[i][j]){
     6          if(array[i][j]>target) {
     7              i--;
     8          } else if(array[i][j] < target) {
     9             j++;
    10         } else{
    11            return true;
    12        }
    13    }
    14    return false;
    15 }
     
     
     
  • 暴力エニュメレーション
  •  1 function Find(target, array)
     2 {
     3     for (let arr of array) {
     4         for (let j of arr) {
     5             if (j == target) {
     6                 return true;
     7             }
     8         }
     9     }
    10     return false;
    11 }
     
     
     
    転載先:https://www.cnblogs.com/boxin/p/9782746.html