day87(2.16)——leetcode面试经典150

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

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

题目:

题解:

java 复制代码
class Solution {
    public int[] searchRange(int[] nums, int target) {
        int[] res = new int[2];
        if(nums.length==0) {
            return new int[]{-1,-1};
        }

        //计算左边界
        int l = 0;
        int r = nums.length;
        while(l<r) {
            int mid = (l+r)/2;
            if(nums[mid]<target) {
                l=mid+1;
            }
            else {
                r=mid;
            }
        }
        res[0]=l;

        //计算右边界
        l = 0;
        r = nums.length;
        while(l<r) {
            int mid = (l+r)/2;
            if(nums[mid]<target+1) {
                l=mid+1;
            }
            else {
                r=mid;
            }
        }
        res[1]=l-1;

        if(res[0]<nums.length && nums[res[0]]==target) {
            return res;
        }
        else {
            return new int[]{-1,-1};
        }
    }
}
相关推荐
Dr.kangder7 分钟前
嵌入式面试总结(十六)——AMBA总线
面试·职场和发展·架构·嵌入式·虚拟化·总线
我变成萤火虫27 分钟前
河南萌新联赛2026第(三)场:郑州轻工业大学
数据结构·c++·算法·贪心算法·stl·深度优先·哈希算法
Dr.kangder31 分钟前
嵌入式面试总结(十九)——内存泄露
单片机·算法·面试·职场和发展·架构·硬件架构
Dr.kangder42 分钟前
嵌入式面试总结(十七)——DMA总线
面试·职场和发展·架构·嵌入式·总线
Suxing91 小时前
C语言基础分享:从“租房”到“拆迁”,C语言动态内存管理
java·数据结构·算法
码匠许师傅2 小时前
【C++ 面试真题】聊聊 C++ 的虚函数和多态
java·c++·面试
LuminousCPP2 小时前
单链表专题(四)-刷题复盘篇-LeetCode 138 随机链表复制|原地拷贝法突破复杂指针操作
数据结构·笔记·算法·leetcode·链表
逆境不可逃2 小时前
【LeetCode 912】排序数组——随机化快速排序详解
数据结构·算法·排序算法
Forever Nore2 小时前
LeetCode 14 最长公共前缀 - 纵向扫描
linux·服务器·leetcode
c238562 小时前
《算法武林谱:四大排序神功与二分寻宝术全解》
数据结构·算法·排序算法