[解決済み] 回転ソートされた配列の中で最小の要素を探す
2022-02-14 07:39:15
質問
回転ソートされた配列のアルファベット順の最下位要素を見つける私の関数は、要素が配列の中央にあるときと先頭にあるときに動作しているようです。 しかし、要素が配列の末尾にあるときにこのコードを動作させる方法がわかりません。Anna"の最小の要素です。以下は私のコードです。
function sorted_array(arr){
var first = 0;
var middle = arr.length/2;
var last = arr.length-1;
while(true){
if(arr[middle-1] > arr[middle] && arr[middle+1] > arr[middle] || middle === first
|| middle == last){
return arr[middle];
}
if(arr[middle] > arr[last] ){
first = middle;
middle = Math.floor((middle + last)/2);
} else{
last = middle;
middle = Math.floor((first + middle)/2);
}
}
}
var arr = [ "Celeste",
"Elon", "Giggli", "Jay", "Mavis", "Phoebe", "Thunder", "Anna"];
console.log(sorted_array(arr));
解決方法は?
を移動させると
middle
のポインタがある場合、それを切り上げる必要があります。
(middle + left + 1)/2
を、配列の後半を検索する部分で使用します。そうしないと、最後のアイテムにたどり着けません。
あなたの場合、次のようになります。
middle = 6, last = 7
,
(6+7)/2 = 6,5 ==> 6
.
また、停止条件において、もし
middle === last || middle === first
無効なインデックスエラーを防ぐために、値チェックの前に。
関連
-
[解決済み】React Js: Uncaught (in promise) SyntaxError: 位置 0 の JSON で予期しないトークン < が発生しました。
-
[解決済み】Syntax error: JavaScriptの不正なreturnステートメント
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】配列に何かを追加する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】document.getElementByIDは関数ではありません。
-
[解決済み】フォームコントロールの値アクセサがない
-
[解決済み】NodeJS "ESモジュールをロードするためにインポートを使用する必要があります。"
-
[解決済み】別のjsファイル内でJavaScriptの関数を呼び出す
-
[解決済み】コンソールがUnterminated JSX contentsエラーを投げる【終了しました
-
[解決済み】SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み】エラー:リスン EACCES 0.0.0.0:80 OSx Node.js
-
[解決済み】JS ファイルが net::ERR_ABORTED 404 (Not Found) を取得する)
-
[解決済み] ローカルファイルを開くことができません - Chrome: ローカルリソースのロードが許可されていません
-
[解決済み】TypeError:res.jsonは関数ではありません。