所以我求解类涉及二进制搜索,我为了解决它工作得很好,但我的预感是,鉴于问题不平衡二叉树无法正常工作。 Node.js的
的参数略有赌博会更有效的算法有问题虚构的HollyBroke,Fl城镇由一个30 x 30的方块网格组成。街道是以美国总统的名字命名的,街道的编号是数字。臭名昭着的两字纵火犯持有城镇人质。他每个星期六都会选择一所房子进行毁灭性的火灾,并通过挑战他们猜测每周犯罪的地点来嘲弄警察局。在他进行比赛之前,他在非常简短的电话会议中会回答10个猜测,并回答“是”或“否”。 (他不会留在线上,所以电话无法跟踪。) 这个城市希望你制定一个计划,当这个臭名昭着的犯罪分子提供一个快速反应。
答案是很容易创建一个算法,但我认为中位数1 /中位数+1赌博会更有效。我的预感更多的是,我会得到一个额外问题的结论,让我或者问一个关于纵火犯的二元搜索问题,或者如果游戏允许,我会在电话结束之前与警察一起出现。如果我没有彻底解决它,我会有一个非常小的空间来搜索完成后,像三个或四个块彼此相邻,
这是我的代码“赌博”二进制搜索。
`var array = [{"a":30,"b":30,"c":0}]
function findLower(input) {
var half = Math.floor(input/2);
if(0 == input%2)
return (half-1);
else
return (half);
};
function findUpper(input) {
var half = Math.floor(input/2);
if(input%2 == 0)
return (half+1);
else
return (half+1);
}
for (var i = 0; i <= 9; i++){
for (var z = array.length - 1; z >= 0; z--) {
if (array[z].c = i){
if (array[z].a>array[z].b)
array.push({"a":findLower(array[z].a),"b":array[z].b,"c":array[z].c + 1},{"a":findUpper(array[z].a),"b":array[z].b,"c":array[z].c + 1})
else
array.push({"a":array[z].a,"b":findLower(array[z].b),"c":array[z].c + 1},{"a":array[z].a,"b":findUpper(array[z].b),"c":array[z].c + 1})
}
};
}
console.log(array.length);`
及其未来与给定的,它应该是一个荒谬数组长度2^10 + 2^9 + 2^8 = ..... 2047 的程序被想出的19683的阵列长度
而一些数组肯定不是30 * 14在节点级别10我确信算法设置正确。我用笔和纸走过了两层,似乎它应该正常工作。