Leecode #704 二分查找

少于 1 分钟读完

class Solution:
    def search(self, nums: List[int], target: int) -> int:
        return self.helper(nums, 0, len(nums)-1, target)
    def helper(self, nums, begin, end, target):
        if begin == end:
            return begin if nums[begin] == target else -1
        mid = (begin+end) // 2
        if nums[mid] == target:
            return mid
        if target < nums[mid]:
            return self.helper(nums, begin, mid, target)
        else:
            return self.helper(nums, mid+1, end, target)
class Solution:
    def search(self, nums: List[int], target: int) -> int:
        import bisect
        i = bisect.bisect_right(nums, target)
        return i - 1 if nums[i - 1] == target else -1

使用bisect竟然耗时更长

分类:

更新时间: