leetcode34——两遍二分法
Posted dtwd886
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode34——两遍二分法相关的知识,希望对你有一定的参考价值。
第一遍找左边第一个目标值,第二遍找大于目标值的第一个值得位置
class Solution
public:
int findIndex(vector<int>& nums,int target,bool flag)
int len=nums.size();
int left=0;
int right=len;
while(left<right)
int mid=(left+right)/2;
if(nums[mid]>target||(flag)&&nums[mid]==target)
right=mid;
else
left=mid+1;
return left;
vector<int> searchRange(vector<int>& nums, int target)
vector<int>result=-1,-1;
int left_index=findIndex(nums,target,true);
if(left_index==nums.size()||nums[left_index]!=target)return result;
int right_index=findIndex(nums,target,false);
result[0]=left_index;
result[1]=right_index-1;
return result;
;
以上是关于leetcode34——两遍二分法的主要内容,如果未能解决你的问题,请参考以下文章
leetcode 34. 在排序数组中查找元素的第一个和最后一个位置(二分)
leetcode(34)---在排序数组中查找元素的第一个和最后一个位置(二分查找)
LeetCode 34 在排序树组中查找元素的第一个和最后一个位置[二分法] HERODING的LeetCode之路
leetcode 34 排序数组中查找元素第一个和最后一个位置