-
leetcode 34-Find First and Last Position of Element in Sorted Array
题干:
二分搜索有序数组模板题。寻找左边界(第一个)+寻找右边界(最后一个)。
Input: nums = [5,7,7,8,8,10], target = 8 Output: [3,4] ---------- Input: nums = [5,7,7,8,8,10], target = 6 Output: [-1,-1] ---------- Input: nums = [], target = 0 Output: [-1,-1]解:
vector<int> searchRange(vector<int>& nums, int target) { if(!nums.size()) return {-1,-1}; return {leftBound(nums, target), rightBound(nums, target)}; } int leftBound(vector<int>& nums, int target){ //寻找左边界(第一个) int left = 0, right = nums.size()-1; int ans = -1; while(left <= right){ int mid = left + ((right - left) >> 1); if(nums[mid] == target){ ans = mid; right = mid - 1; } else if(nums[mid] < target) left = mid + 1; else if(nums[mid] > target) right = mid - 1; } return ans; } int rightBound(vector<int>& nums, int target){ //寻找右边界(最后一个) int left = 0, right = nums.size()-1; int ans = -1; while(left <= right){ int mid = left + ((right - left) >> 1); if(nums[mid] == target){ ans = mid; left = mid + 1; } else if(nums[mid] < target) left = mid + 1; else if(nums[mid] > target) right = mid - 1; } return ans; }
leetcode 34-Find First and Last Position of Element in Sorted Array(二分,有序数组)
最新推荐文章于 2026-03-30 08:48:08 发布
博客围绕LeetCode 34题“Find First and Last Position of Element in Sorted Array”展开,此为二分搜索有序数组模板题,解题思路是寻找元素在有序数组中的左边界(第一个)和右边界(最后一个)。
420

被折叠的 条评论
为什么被折叠?



