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};
        }
    }
}
相关推荐
晨米酱3 天前
AGENTS.md:Agent 的上下文策略层
面试·架构·agent
m0_547486663 天前
《数据结构教程》全套 PPT课件2026
数据结构
旖旎夜光3 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
彧azz3 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
CoderYanger3 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
圣保罗的大教堂3 天前
leetcode 3524. 求出数组的 X 值 I 中等
leetcode
爱学习的执念3 天前
助力金九银十1000道软件测试面试题(功能、接口、自动化、WEB、APP.......)附答案
软件测试·面试
小的~~3 天前
银河麒麟V10 ARM部署TDengine(涛思)工业时序数据库安装与测试
面试·程序员创富
Tim_103 天前
【LeetCode】338、比特位计数
c++·算法·leetcode
小刘在重生~3 天前
Oracle_day2 单行函数|组函数|分组|伪列|子查询|分页|多表连接
笔记·oracle·面试