1.题目:
2.解析:这里不能用传统二分,因为涉及范围,传统二分时间复杂度会降为O(N),要做些改动。
步骤一:查找区间左端点
细节图:
步骤二:查找区间右端点:
细节图:
代码:
javapublic int[] searchRange(int[] nums, int target) { int[] ret = new int[2]; ret[0] = ret[1] = -1; if(nums.length == 0) return ret; //二分查找区间左端点 int left = 0; int right = nums.length-1; while(left < right){ int mid = left+(right-left)/2; if(nums[mid] < target) left = mid+1; else right = mid; } //判断是否有结果 if(nums[left] == target){ ret[0] = left; }else { return ret; } //二分查找区间右端点 left = 0; right = nums.length-1; while(left < right){ int mid = left+(right-left+1)/2; if(nums[mid] <= target) left = mid; else right = mid-1; } //判断是否有结果 ret[1] = left; return ret; }3.非朴素二分模板:在理解原理基础上
二分查找一>:在排序数组中查找元素的第一个和最后一个位置
robin_suli2024-10-03 22:12
相关推荐
小郎君65830 分钟前
Vue 多标签页的加载态设计:为什么我没有用 Suspense 实现 PageLoadingJJJennie7771 小时前
MAI Gateway私有化部署全攻略:大模型网关如何接入?附架构图東隅已逝,桑榆非晚1 小时前
算法3.双指针法-快乐数专注仿真1 小时前
卷积神经网络(CNN)算法详解FII工业富联科技服务1 小时前
多智能体如何进入制造现场?从业务协同到数字孪生验证≮傷£≯√2 小时前
httpserver_QNetWorkClientEvand J2 小时前
【PMSM例程11】永磁同步电机(PMSM)基于UKF的转速与转子位置估计。附下载链接货拉拉技术2 小时前
记忆即智能:重构对话式AI Agent认知基座的四层渐进式记忆与自进化系统杜 硕2 小时前
从零开始的C++生活——第六讲——02小超人诞生日记2 小时前
C++ STL 反向迭代器:从源码框架到适配器实现


