长沙网站seo哪家公司好,网站建设官方网站,广告创意设计说明,做网络推广选择网站Problem: 34. 在排序数组中查找元素的第一个和最后一个位置 文章目录 思路解题方法复杂度Code 思路 二分查找#xff0c; 口诀#xff1a;左右右#xff0c;求左段区间的右端点#xff0c;动r 解题方法 两次二分查找 复杂度
时间复杂度: O ( l o g n ) O(logn) O(logn) 二… Problem: 34. 在排序数组中查找元素的第一个和最后一个位置 文章目录 思路解题方法复杂度Code 思路 二分查找 口诀左右右求左段区间的右端点动r 解题方法 两次二分查找 复杂度
时间复杂度: O ( l o g n ) O(logn) O(logn) 二次两份查找
空间复杂度: O ( 1 ) O(1) O(1) 若干中间变量
Code
class Solution:def searchRange(self, nums: List[int], target: int) - List[int]:if not nums: return [-1, -1]n len(nums)l, r 0, n - 1res [-1, -1]# 确定左区间while l r:mid l r 1if nums[mid] target:r midelse:l mid 1if nums[l] target:res[0] l# 确定右区间r n - 1while l r:mid l r 1 1if nums[mid] target:l midelse:r mid - 1if nums[l] target: res[1] rreturn res