Leetcode 34. 在排序数组中查找元素的第一个和最后一个位置
Posted randyniu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 34. 在排序数组中查找元素的第一个和最后一个位置相关的知识,希望对你有一定的参考价值。
class Solution { public: int left_bound(vector<int>& nums, int target) { int beg = 0; int end = nums.size()-1; int mid = 0; while(beg <= end) { mid = beg + (end-beg)/2; if(target == nums[mid]) { if(mid == 0 || nums[mid-1] < target) return mid; end = mid -1; } else if(target < nums[mid]) { end = mid-1; } else if(target > nums[mid]) { beg = mid+1; } } return -1; } int right_bound(vector<int>& nums, int target) { int beg = 0; int end = nums.size()-1; int mid = 0; while(beg <= end) { mid = beg + (end-beg)/2; if(target == nums[mid]) { if(mid == nums.size()-1 || nums[mid+1] > target) return mid; beg = mid + 1; } else if(target < nums[mid]) { end = mid-1; } else if(target > nums[mid]) { beg = mid+1; } } return -1; } vector<int> searchRange(vector<int>& nums, int target) { int left = left_bound(nums, target); int right = right_bound(nums, target); return vector<int>{left, right}; } };
以上是关于Leetcode 34. 在排序数组中查找元素的第一个和最后一个位置的主要内容,如果未能解决你的问题,请参考以下文章
[leetcode] 34. 在排序数组中查找元素的第一个和最后一个位置(Java)
算法leetcode|34. 在排序数组中查找元素的第一个和最后一个位置(rust重拳出击)
[LeetCode]34. 在排序数组中查找元素的第一个和最后一个位置(二分)
leetcode-34在排序数组中查找元素的第一个和最后一个位置