题解 | #【模板】二分查找、堆#
【模板】堆
https://www.nowcoder.com/practice/13f61c8c92404f5ea5d6fa4c692869fb
二分查找
class Solution: # 二分查找, 必须是升序数组。 def search(self , nums: List[int], target: int) -> int: # write code here l = 0 r = len(nums) - 1 # 从数组首尾开始, 直到两者相遇 while l <= r: # 求中间值 tgt_ind = l +int((r-l)/2) # 检查中间值是否等于目标值 if nums[tgt_ind] == target: return tgt_ind # 中间值大于目标值, 表示在左区间 if nums[tgt_ind] > target: r = tgt_ind - 1 else: # 中间值小于于目标值, 表示在右区间 l = tgt_ind + 1 return -1