跳到正文
前端知识库
算法

答案二分:最小可行值模型

而是在“答案空间”上二分。(深入阅读:1. 最小可行值)

1 分钟

答案二分:最小可行值模型

一、面试常考点

1. 不是在数组里找值

而是在“答案空间”上二分。(深入阅读:1. 最小可行值

2. 关键条件

可行性函数 check(x) 必须满足单调性。(深入阅读:2. 最大不可行值

二、细节介绍

1. 最小可行值

check(mid) 可行,收缩右边界找更小可行值。

2. 最大不可行值

与上面互为镜像写法。

三、示例代码

function minFeasible(left, right, check) {
  while (left < right) {
    const mid = left + ((right - left) >> 1)
    if (check(mid)) right = mid
    else left = mid + 1
  }
  return left
}

四、常用应用场景

1. 产能/时间优化

最小速度、最小容量、最短工期类问题。

2. 阈值搜索

找到满足条件的最小参数。