【发布时间】:2021-01-12 06:16:45
【问题描述】:
我正在尝试关注 leetcode 加热器问题(简单难度)。
我写了一个不起作用的算法(我意识到我做错了什么),所以我去讨论解决方案。
在那里,我偶然发现有人使用二分搜索,但无法理解他们的逻辑。 谁能解释一下(算法)我们如何使用二进制搜索来解决这个问题(谷歌搜索没有任何帮助)
这是我的非二进制搜索算法,它不起作用
/**
* @param {number[]} houses
* @param {number[]} heaters
* @return {number}
*/
var findRadius = function(houses, heaters) {
let maximumDist = 1
let currentDist = i = cHeaterIndex = 0
while (i<houses.length){
const cHeaterPosition = heaters[cHeaterIndex]
if (houses[i] === cHeaterPosition || i === houses.length-1) {
if (houses[i] === cHeaterPosition) {
if (maximumDist < currentDist) {
maximumDist = parseInt((currentDist - 1)/2)
}
} else {
maximumDist = currentDist - 1
}
currentDist = 1
cHeaterIndex++
}
i++
currentDist++
}
return maximumDist
};
【问题讨论】:
标签: javascript data-structures dsa