LeetCodeTOP100_34. 在排序數(shù)組中查找元素的第一個和最后一個位置
34. 在排序數(shù)組中查找元素的第一個和最后一個位置
給你一個按照非遞減順序排列的整數(shù)數(shù)組 nums,和一個目標值 target。請你找出給定目標值在數(shù)組中的開始位置和結(jié)束位置。
如果數(shù)組中不存在目標值 target,返回 [-1, -1]。
你必須設(shè)計并實現(xiàn)時間復(fù)雜度為 O(log n) 的算法解決此問題。
?
示例 1:
輸入:nums = [5,7,7,8,8,10], target = 8
輸出:[3,4]
示例 2:
輸入:nums = [5,7,7,8,8,10], target = 6
輸出:[-1,-1]
示例 3:
輸入:nums = [], target = 0
輸出:[-1,-1]
需要O(nlgn)的時間,想到二分法;
與二分法模板不同的是,實際上是第一個大于等于target的數(shù)和第一個大于target的數(shù)-1,構(gòu)成了區(qū)間的左右邊界;
代碼如下:
標簽: