序文
最近牛オフネットワークのインタビューの質問、答えを見つけることは容易ではないオンラインZenmoの中に発見安全プランを証明するために多くの質問を見て同僚のための参照を提供する場合、それは初めてですので、私は、右もそれをメモしておきますが、書き込み、そんなに悪い場所でも私を許して願っています。
タイトル説明
(同一の各一次元アレイの長さ)は、上から下に増加する順に、二次元アレイの各列を並べ替えるために、昇順ソートの順に左から右に、各行。完全な機能、例えば、二次元アレイと整数を入力し、配列の整数が含まれているか否かが判断されます。
個人的な感情のES6は、一部のクエリでは、それは、実際の走行時間より単純なものとすることができる方法の配列を使用するための:142msメモリ:11028kを
関数検索(標的配列) { 戻り array.someを(アイテム=> { 返す(商品=> {item.someを返す ===アイテムをターゲット})=== 真 }) } module.exportsは = { 検索:検索 } ;
ユーザー方法
基本的な原理は、最初のクエリに似ており、特定の行のサイズを比較します
関数検索(標的配列){ iはせ = 0 のlet J [i]は.LENGTH =アレイ1 - せて分 =配列[0] [0 ] 最大せ =配列[Array.lengthと-1] [配列[0]。長-1 ] であれば(目標<分||ターゲット> MAX) を返す 偽 しばらく(I <Array.lengthと&& J> = 0 ){ もし(配列[I] [J] < ターゲット){ iは ++ } そう なら(配列[I] [J]> ターゲット){ J - } 他{ 返す 真 } } を返す 偽 }