当前位置 博文首页 > luxuiary的博客:给定一个按照升序排列的整数数组?nums,和一个

    luxuiary的博客:给定一个按照升序排列的整数数组?nums,和一个

    作者:[db:作者] 时间:2021-09-03 12:09

    给定一个按照升序排列的整数数组?nums,和一个目标值?target。找出给定目标值在数组中的开始位置和结束位置。

    你的算法时间复杂度必须是?O(log?n) 级别。

    如果数组中不存在目标值,返回?[-1, -1]

    示例 1:

    输入: nums = [5,7,7,8,8,10], target = 8
    输出: [3,4]

    示例?2:

    输入: nums = [5,7,7,8,8,10], target = 6
    输出: [-1,-1]

    class?Solution?{

    ????public?int[]?searchRange(int[]?nums,?int?target)?{

    ????????if(nums?==?null?||?nums.length?<=0?){

    ????????????return?new?int[]{-1,-1};

    ????????}

    ????????

    ????????Arrays.sort(nums);

    ????????List?list?=?new?ArrayList();

    ????????for(int?i?=?0;i<?nums.length;i++){

    ????????????if(nums[i]?==?target){

    ????????????????list.add(i);

    ????????????}

    ????????}

    ????????if(list?==?null?||?list.size()?<=0){

    ????????????return?new?int[]{-1,-1};

    ????????}

    ????????if(list.size()?==?1){

    ????????????int?index?=?(int)list.get(0);

    ????????????return?new?int[]{index,?index};

    ????????}else?if(list.size()>2){

    ????????????return?new?int[]{(int)list.get(0),?(int)list.get(list.size()-1)};

    ????????}else{

    ????????????return?new?int[]{(int)list.get(0),?(int)list.get(1)};

    ????????}

    ????}

    }

    ?

    ?

    ?

    cs