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};
        }
    }
}
相关推荐
不会就选b25 分钟前
算法日常・每日刷题--<贪心+大根堆>2
数据结构·算法
事圆则缓34 分钟前
Java 常见数据结构与 Android 使用场景
android·java·数据结构
haon11221 小时前
面试高频题与口述框架:怎么把经历讲成故事
面试·职场和发展
白狐_7981 小时前
408 数据结构|外部排序优化:怎么减少时间开销
数据结构·算法
a187927218311 小时前
【算法】动态规划入门:从打家劫舍到状态设计的三堂课
算法·leetcode·动态规划·dp·回溯·暴力
黄敬峰12 小时前
Agent Memory 进阶:用 LLM 总结压缩上下文,告别"金鱼记忆"
面试
Tisfy12 小时前
LeetCode 3876.构造奇偶一致的数组 II:三种情况分类讨论(其实还是脑筋急转弯)
算法·leetcode·题解·脑筋急转弯
kiracrimson14 小时前
从缓存的角度看链表与线性表的差异
数据结构·链表·缓存
RisunJan14 小时前
后端高频面试题与解答
面试·职场和发展
木井巳15 小时前
【BFS/DFS 解决 FloodFill 算法】太平洋大西洋水流问题
java·算法·leetcode·深度优先·广度优先·宽度优先·推荐算法