在排序数组中查找元素的第一个和最后一个位置——力扣34

文章目录

题目描述

法一 二分查找

cpp 复制代码
int bsearch_1(int l, int r)
{
    while (l < r)
    {
        int mid = (l + r)/2;
        if (check(mid)) r = mid;
        else l = mid + 1;
    }
    return l;
}
cpp 复制代码
int bsearch_2(int l, int r)
{
    while (l < r)
    {
        int mid = ( l + r + 1 ) /2;
        if (check(mid)) l = mid;
        else r = mid - 1;
    }
    return l;
}




cpp 复制代码
vector<int> searchRange(vector<int>& nums, int target){
		if(nums.empty()) return {-1, -1};
        
        int l=0, r=nums.size()-1;
		while(l<r){
			int mid = (l+r)/2;
			if(nums[mid]>=target) r=mid;
			else l=mid+1;
		}
        if(nums[r]!=target) return {-1, -1};
		int L=r;
        l=0, r=nums.size() - 1;
		while(l<r){
			int mid = (l + r + 1)/2;
			if(nums[mid] <= target) l=mid;
			else r=mid-1;
		}
		return {L, r};
	}
相关推荐
千寻girling3 小时前
Python 是用来做 AI 人工智能 的 , 不适合开发 Web 网站 | 《Web框架》
人工智能·后端·算法
颜酱7 小时前
一步步实现字符串计算器:从「转整数」到「带括号与优化」
javascript·后端·算法
不想写代码的星星8 小时前
std::function 详解:用法、原理与现代 C++ 最佳实践
c++
CoovallyAIHub1 天前
语音AI Agent编排框架!Pipecat斩获10K+ Star,60+集成开箱即用,亚秒级对话延迟接近真人反应速度!
深度学习·算法·计算机视觉
NineData1 天前
数据库管理工具NineData,一年进化成为数万+开发者的首选数据库工具?
运维·数据结构·数据库
木心月转码ing1 天前
Hot100-Day14-T33搜索旋转排序数组
算法
会员源码网1 天前
内存泄漏(如未关闭流、缓存无限增长)
算法
颜酱1 天前
从0到1实现LFU缓存:思路拆解+代码落地
javascript·后端·算法
颜酱1 天前
从0到1实现LRU缓存:思路拆解+代码落地
javascript·后端·算法