LeetCode(算法)- 34. 在排序数组中查找元素的第一个和最后一个位置

Posted 放羊的牧码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode(算法)- 34. 在排序数组中查找元素的第一个和最后一个位置相关的知识,希望对你有一定的参考价值。

题目链接:点击打开链接

题目大意:

解题思路:

相关企业

  • 字节跳动
  • Facebook
  • 亚马逊(Amazon)
  • 微软(Microsoft)
  • 谷歌(Google)
  • 苹果(Apple)
  • 领英(LinkedIn)
  • 彭博(Bloomberg)

AC 代码

class Solution 

    public int[] searchRange(int[] nums, int target) 
        int[] rs = new int[2];
        int from = find(nums, target - 0.1, target);
        int to = find(nums, target + 0.1, target);
        rs[1] = to - 1;
        rs[0] = from + 1;
        if (to < 0 || from > nums.length - 1 || to - from - 1 == 0) 
            rs[0] = rs[1] = -1;
        
        return rs;
    

    private int find(int[] nums, double num, int target) 
        int left = 0;
        int right = nums.length - 1;
        int rs = -1;
        while (left <= right) 
            int mid = (left + right) / 2;
             if (nums[mid] > num) 
                rs = right = mid - 1;
             else if (nums[mid] < num) 
                rs = left = mid + 1;
             else 
                 return -1;
             
        
        if (rs == -1 || rs == nums.length) 
            return rs;
         else if (num > target && nums[rs] < num) 
            return rs + 1;
         else if (num < target && nums[rs] > num) 
            return rs - 1;
        
        return rs;
    

以上是关于LeetCode(算法)- 34. 在排序数组中查找元素的第一个和最后一个位置的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode(算法)- 34. 在排序数组中查找元素的第一个和最后一个位置

⭐算法入门⭐《二分枚举》简单06 —— LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置

LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置 | Python

LeetCode 34 在排序数组中查找元素的第一个和最后一个位置

LeetCode34. 在排序数组中查找元素的第一个和最后一个位置

leetcode34. 在排序数组中查找元素的第一个和最后一个位置