2019-08-11

image.png

java语言描述

class Solution {
    //两次二分查找  二段式
    public int[] searchRange(int[] nums, int target) {
        int[] targetRange = {-1, -1};
        if(nums==null  || nums.length==0)
            return targetRange;
        int l=0 , r=nums.length-1;
        while(l<r){
            //找出第一个target出现的下标
            //范围缩小到target左边的区间,输出区间的右端点
            int mid=(l+r)/2;
            if(nums[mid]>=target)
                r=mid;
            else
                l=mid+1;
        }
        if(nums[r]!=target)   
            return targetRange;
        int start=r;
        int a=0 , b=nums.length-1;
        while(a<b){
            //找出最后一个target出现的下标
            //范围缩小到target右边的区间,输出区间的左端点
            int mid=(a+b+1)/2;
            if(nums[mid]<=target)
                a=mid;
            else
                b=mid-1;
        }
        int end=a;
        return new int[]{start,end};
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 为什么学Java都会选择重庆北大青鸟? 据相关统计,程序员的幸福指数越来越高,这正是因为这个行业的薪资所带来的。而...
    dida滴答阅读 96评论 0 0
  • 1. 什么是MyBatis? MyBatis是一个实现了JPA规范的用来连接数据库并对其进行增删改查操作的开源框架...
    医嘱阅读 408评论 0 0
  • 打造店铺权重,店铺流量爆发增长 淘宝整个市场那么大,一个店铺想要在这激烈的环境中脱颖而出,与店铺流量多少与流量精准...
    雨中的悲伤01阅读 243评论 0 0
  • 【百日计划】第四十六天 1.袁林每天1000已完成 2赵金涛每天三行字已完成。 3、赵子衡每天三道物理题已完成 4...
    初心仍未改变阅读 60评论 0 0
  • 林静走进打印社。老板是一位瘦瘦的中年人,原来孩子上初中的时候正好路过这里,偶尔进来打印过东西。老板天天阴沉着脸,没...
    馨思遇阅读 386评论 0 2