34. Find First and Last Position of Element in Sorted Array

JJ·2021년 1월 18일
0

Algorithms

목록 보기
69/114
public class Solution {
    public int[] searchRange(int[] nums, int target) {
        if (nums == null || nums.length == 0) {
            return new int[]{-1, -1};
        }
        int start = first(nums, target);
        if (start == nums.length || nums[start] != target) {
            return new int[]{-1, -1};
        }
        int end = first(nums, target + 1);
        return new int[]{start, nums[end] == target? end: end-1};
    }

    public int first(int[] nums, int target) {
        int low = 0, high = nums.length - 1;
        while (low + 1 < high) {
            int mid = low + (high - low) / 2;
            if (nums[mid] < target) {
                low = mid;
            } else {
                high = mid;
            }
        }
        if (nums[low] == target) {
            return low;
        }
        return high;
    }
}

Runtime: 0 ms, faster than 100.00% of Java online submissions for Find First and Last Position of Element in Sorted Array.
Memory Usage: 42.6 MB, less than 25.52% of Java online submissions for Find First and Last Position of Element in Sorted Array.

수업때 뒤지게 한 binary search...
뒤지게 반갑다^^

0개의 댓글