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
相关推荐
CoovallyAIHub23 分钟前
OpenClaw一脚踩碎传统CV?机器终于不再只是看世界CoovallyAIHub39 分钟前
仅凭单目相机实现3D锥桶定位?UNet-RKNet破解自动驾驶锥桶检测难题zone773940 分钟前
002:RAG 入门-LangChain 读取文本得物技术2 小时前
得物社区搜推公式融合调参框架-加乘树3.0实战会员源码网20 小时前
使用`mysql_*`废弃函数(PHP7+完全移除,导致代码无法运行)木心月转码ing21 小时前
Hot100-Day10-T438T438找到字符串中所有字母异位词HelloReader1 天前
Wi-Fi CSI 感知技术用无线信号“看见“室内的人颜酱1 天前
二叉树分解问题思路解题模式qianpeng8971 天前
水声匹配场定位原理及实验董董灿是个攻城狮2 天前
AI视觉连载8:传统 CV 之边缘检测


