【优选算法】专题三:二分查找 --- 34. 在排序数组中查找元素的第一个和最后一个位置

从今天开始,xxxflower 带着小伙伴们一起学习算法 ~
今天我们要写的题目是:
34. 在排序数组中查找元素的第一个和最后一个位置
以下是题目的详细解析:
请添加图片描述

class Solution {
   
    public int[] searchRange(int[] nums, int target) {
   
        // 判断数组为空的情况下返回-1,-1
        int[] ret = new int[2];
        ret[0] = ret[1] = -1;
        if (nums.length == 0) return ret;

        // 判断左端点
        int left = 0,right = nums.length -1;
        while(left < right){
   
            int mid = left+(right-left)/2;
            if(nums[mid] < target) left = mid + 1;
            else right = mid;
        }
        // 判断是否有结果
        if(nums[left] != target) return ret;
        else ret[0] = left;

        // 判断右端点
        left = 0;right = nums.length -1 ;
        while(left < right){
   
            int mid = left+(right-left+1)/2;
            if(nums[mid] <= target) left = mid;
            else right = mid -1;
        }

        ret[1] = left;

        return ret;
    }
}

在这里插入图片描述

最近更新

  1. TCP协议是安全的吗?

    2024-01-08 22:00:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-08 22:00:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-08 22:00:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-08 22:00:01       20 阅读

热门阅读

  1. Spring之AOP大体流程

    2024-01-08 22:00:01       42 阅读
  2. 基于SpringBoot的乡村养老服务管理系统

    2024-01-08 22:00:01       45 阅读
  3. 在网址URL中隐藏数据的一些方案

    2024-01-08 22:00:01       39 阅读
  4. vue 中 computed 和 watch 的区别

    2024-01-08 22:00:01       35 阅读
  5. js 对于一些脚本中对于url的一些参数获取

    2024-01-08 22:00:01       39 阅读
  6. 使用什么实现跨域的?

    2024-01-08 22:00:01       44 阅读
  7. 【docker】Dockerfile 指令详解

    2024-01-08 22:00:01       42 阅读
  8. 容器相关笔记

    2024-01-08 22:00:01       36 阅读
  9. git合并相关

    2024-01-08 22:00:01       35 阅读
  10. ubuntu22.04 手动分区说明

    2024-01-08 22:00:01       64 阅读
  11. 小米红米Note9 Pro 5G刷PixelOS,并安装kali nethunter

    2024-01-08 22:00:01       33 阅读