【LeetCode热题100】--34.在排序数组中查找元素的第一个和最后一个位置

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

二分查找中,寻找 leftIdx 即为在数组中寻找第一个大于等于 target 的下标,寻找 rightIdx 即为在数组中寻找第一个大于 target 的下标,然后将下标减一。进行两次查找

java 复制代码
class Solution {
    public int[] searchRange(int[] nums, int target) {
        //寻找左边界
        int leftIndex = search(nums,target);
        if(leftIndex >= nums.length || nums[leftIndex] != target){
            return new int[]{-1,-1};
        }
        //寻找右边界
        int rightIndex = search(nums,target + 1);
        return new int[]{leftIndex, rightIndex - 1};
    }
    private int search(int[] nums, int target) {
        int left = 0;
        int right = nums.length - 1;
        while (left <= right){
            int mid = (right + left) / 2 ;
            if (nums[mid] >= target){
                right = mid - 1;
            } else {
                left = mid + 1;
            }
        }
        return left;
    }

}
相关推荐
careathers2 分钟前
【数据结构】二叉树
数据结构·算法
轩轶子1 小时前
Python CLI Todo:一次数据结构错误引发的 Bug
数据结构·python·bug
Omics Pro1 小时前
空间组学!医学代谢显微工具
数据库·人工智能·算法·机器学习·自然语言处理
Coder-magician1 小时前
《代码随想录》刷题打卡day44:图论-part02
算法·深度优先·图论
克里斯蒂亚诺更新1 小时前
理解机器学习的各种算法
人工智能·算法·机器学习
小范的技术工坊1 小时前
大模型学习操作文档(13个核心概念串讲)
人工智能·学习·算法·大模型
一个低调的青年1 小时前
电池健康状态估计(一)
经验分享·笔记·其他·算法·模型
longlongzihan1 小时前
【LeetCode 204. 计数质数】从暴力枚举到埃拉托斯特尼筛法
算法·筛法
alphaTao1 小时前
LeetCode 每日一题 2026/9/21-2026/9/27
python·算法·leetcode
88号技师1 小时前
2026年9月SCI-天气状态蚂蚁优化算法Weather State Ants Optimizer-附Matlab免费代码
开发语言·算法·matlab·优化算法