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

126 阅读1分钟

给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。

如果数组中不存在目标值 target,返回 [-1, -1]。

自己写的,比较菜,这道题还有效率更高的写法。就是二分查找,效率会更高一点

    public int[] searchRange(int[] nums, int target) {
        int index[] = new int[2];
        index[0] = -1;
        index[1] = -1;
        for(int i = 0;i < nums.length;i++){
            if(nums[i] == target) {
                index[0] = i;
                break;
            }
        }
        for(int i = nums.length-1;i >= 0;i--){
            if(nums[i] == target) {
                index[1] = i;
                break;
            }
        }

        return index;
    }
}