跳过正文
  1. 全部/
  2. 笔记/
  3. LeetCode/

014 二分答案法

// 需要二分
// 简便的反向计算,如果结果是mid,那么查看另一个参数如何变化
func cal(mid int) (k int) {
}

func smallestDistancePair(nums []int, k int) int {
    l, r := 0, 可能的最大值
    res := 0
    for l <= r {
        mid := (l + r) / 2
        if cal(mid) <= k {
            res = mid
            r = mid - 1
        } else {
            l = mid + 1
        }
    }
    return res
}
Reply by Email