2 水晶球问题以最小的时间复杂度找到第一个命中。
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); /* Output 6 i Answer ---> 4 */
以上是使用 Javascript 解决水晶球搜索问题的详细内容。更多信息请关注PHP中文网其他相关文章!