想拿到最左边那个该怎么改
要让二分返回最左边的那个,改法是【0】。
开始练习 →
左右边界能拿来做什么
同时求出左边界和右边界,最直接的用处是【0】。
开始练习 →
最左边那个 17 在哪
数组是 [13, 15, 17, 17, 17, 23, 24]。运行下面这段程序: def left_bound(a, target): lo = 0 hi = len(a) - 1 got = -1 wh
开始练习 →
最右边那个呢
同一个数组。运行下面这段程序: def right_bound(a, target): lo = 0 hi = len(a) - 1 got = -1 while lo <= hi: m
开始练习 →
写一个左边界二分
补全 left_bound:返回目标最左边那个的下标,找不到返回 -1。
开始练习 →
再写一个右边界
补全 right_bound:和左边界只差一个方向——相等时记下来之后往右缩。
开始练习 →
数出它出现了几次
补全 count:用左右边界数出目标出现的次数,不存在返回 0。
开始练习 →
二分最常见的错在哪
二分写错,十有八九错在【0】。
开始练习 →
`while lo < hi` 和 `while lo <= hi`
把 while lo <= hi 写成 while lo < hi,后果是【0】。
开始练习 →
二分死循环通常是什么原因
二分陷入死循环,通常是因为【0】。
开始练习 →