1. 程式人生 > 其它 >#力扣 LeetCode 34. 在排序陣列中查詢元素的第一個和最後一個位置 #Java超100% @FDDLC

#力扣 LeetCode 34. 在排序陣列中查詢元素的第一個和最後一個位置 #Java超100% @FDDLC

技術標籤:演算法&資料結構

題目描述:

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

Java程式碼:

class Solution { //如果陣列中不存在目標值 target,返回 [-1, -1]
    public int[] searchRange(int[] nums, int target) { //0 <= nums.length <= 105
        if(nums.length==0)return new int[]{-1,-1};
        int low=0,high=nums.length-1,mid=0,toLeft,toRight;
        while(low<=high){
            mid=(low+high)/2;
            if(nums[mid]<target)low=mid+1;
            else if(nums[mid]>target)high=mid-1;
            else break;
        }
        if(nums[mid]!=target)return new int[]{-1,-1}; //不存在
        for(toLeft=mid;toLeft>=0&&nums[toLeft]==target;toLeft--);
        for(toRight=mid;toRight<nums.length&&nums[toRight]==target;toRight++);
        return new int[]{toLeft+1,toRight-1};
    }
}