2 水晶玉問題は、最小の時間計算量で最初のヒットを見つけます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | const arr = [false, false, false, false, true, true, true, true, true, true];
function two_crystal_balls(breaks) {
const jmpAmount = Math. floor (Math.sqrt(breaks.length));
let i = jmpAmount;
for (; i < breaks.length; i += jmpAmount) {
if (breaks[i]) {
break ;
}
}
console.log(i, "i" );
const updatedPos = i - jmpAmount;
for (let j = updatedPos; j<= i; j++) {
if (arr[j]) {
console.log( 'Answer ---> ' , j);
return ;
}
}
return -1;
}
two_crystal_balls(arr);
|
ログイン後にコピー
以上がrystal ボール検索の問題を Javascript を使用して解決するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。