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

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

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

题目要求:给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。

算法:

1- 先寻找左边界,再查找右边界,需要注意左右指针需要小于等于,因为可能数组中只存在一个元素与目标值相等

// date 2022-09-15
func searchRange(nums []int, target int) []int {
    res := []int{-1, -1}
    left, right := 0, len(nums)-1
    for left <= right {
        if nums[left] == target {
            res[0] = left
            break
        }
        left++
    }
    for left <= right {
        if nums[right] == target {
            res[1] = right
            break
        }
        right--
    }
    return res
}

最后更新于