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

Posted Starzkg

tags:

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

https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/

解决方案

class Solution 
    public int[] searchRange(int[] nums, int target) 
        int leftIdx = binarySearch(nums, target, 0, true);
        return new int[]leftIdx, binarySearch(nums, target, leftIdx, false);
    

    public int binarySearch(int[] nums, int target, int left, boolean lower) 
        if (left == -1) 
            return -1;
        
        int ans = -1;
        int right = nums.length - 1;
        while (left <= right) 
            int mid = (left + right) / 2;
            if (nums[mid] == target) 
                if (lower) 
                    right = mid - 1;
                 else 
                    left = mid + 1;
                
                ans = mid;
             else if (nums[mid] > target) 
                right = mid - 1;
             else 
                left = mid + 1;
            
        
        return ans;
    

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

[leetcode] 34. 在排序数组中查找元素的第一个和最后一个位置(Java)

算法leetcode|34. 在排序数组中查找元素的第一个和最后一个位置(rust重拳出击)

[LeetCode]34. 在排序数组中查找元素的第一个和最后一个位置(二分)

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

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

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