leetcode34——两遍二分法

Posted dtwd886

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode34——两遍二分法相关的知识,希望对你有一定的参考价值。

题目链接:https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/submissions/

 

第一遍找左边第一个目标值,第二遍找大于目标值的第一个值得位置

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 排序数组中查找元素第一个和最后一个位置

Leetcode刷题Python34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)

⭐算法入门⭐《二分枚举》简单06 —— LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置