给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
如果数组中不存在目标值 target,返回 [-1, -1]。
题目描述得十分清晰,同时思路也随之非常清晰:既然是排序数组,自然而然就会想到二分法。先根据二分法找到元素的出现位置,记为mid,然后从mid向前向后找到元素的最开始、最末尾出现位置。本题思路非常简单,但是二分法的细节实现上却有一些问题:一般的二分法条件设定都是left!=right,但本题要加上防止越界的条件。
以下是代码:
class Solution {
public int[] searchRange(int[] nums, int target) {
if(nums.length==0){
int []a = new int[2];
a[0] = -1;
a[1