【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;
    }

}
相关推荐
普通攻击往后拉7 小时前
Leetcode 206. 反转链表
算法·leetcode·链表
@syh.8 小时前
【贪心】矩阵消除游戏
算法·游戏·矩阵
可编程芯片开发8 小时前
基于零极点配置的PID控制系统simulink建模与仿真
算法
徐小夕9 小时前
开源!我用SQLite + DuckDB打造了一款可视化AI问数平台
前端·算法·github
Hrain-AI9 小时前
2026 企业 AI 智能体平台横评:8 大主流平台 7 维度实测对比
人工智能·算法·机器学习
Angel Q.10 小时前
因子分析和生成模型有什么关系?从“幕后因素”到“生成数据”
算法
FBI HackerHarry浩11 小时前
AI大模型开发V2第四阶段线性回归
人工智能·算法·线性回归
Jerry12 小时前
LeetCode 108. 将有序数组转换为二叉搜索树
算法
蓝斯49713 小时前
Diff算法的简单介绍
算法