Search
Problem
Diff
Data
Flag
二分查找的通用模板
模板 1:
boolean check(x int) {}
func search(left, right int) int {
for left < right {
mid := (left + right) >> 1
if check(mid) {
right = mid
} else {
left = mid + 1
}
}
return left
}
模板 2:
boolean check(x int) {}
func search(left, right int) int {
for left < right {
mid := (left + right + 1) >> 1
if check(mid) {
left = mid
} else {
right = mid + 1
}
}
return left
}
最后更新于
这有帮助吗?