[Leetcode題解]在排序數組中查找元素的第一個和最後一個位置

在排序數組中查找元素的第一個和最後一個位置

image.png

很顯然這個題是一個二分查找,對於二分查找的題目,我建議若是本身已經比較熟練地話,可使用Python標準庫裏的bisect模塊。這裏使用後能夠2行代碼解決,不容易出錯。bisect.bisect方法是用來查找有序列表插入指定元素位置的一個函數,插入後必須仍然有序,因此咱們能夠利用這個函數很輕鬆的解決這個問題:數組

代碼:函數

import bisect
class Solution(object):
    def searchRange(self, nums, target):
        left,right = bisect.bisect_left(nums,target),bisect.bisect(nums,target)-1
        return [left,right] if (left<len(nums) and nums[left]==target) else [-1,-1]
相關文章
相關標籤/搜索