## The challenge

Given an array of integers `nums` sorted in ascending order, find the starting and ending position of a given `target` value.

If `target` is not found in the array, return `[-1, -1]`.

Follow up: Could you write an algorithm with `O(log n)` runtime complexity?

Example 1:

```Input: nums = [5,7,7,8,8,10], target = 8
Output: [3,4]```

Example 2:

```Input: nums = [5,7,7,8,8,10], target = 6
Output: [-1,-1]```

Example 3:

```Input: nums = [], target = 0
Output: [-1,-1]```

Constraints:

• `0 <= nums.length <= 10<sup>5</sup>`
• `-10<sup>9</sup>&nbsp;<= nums[i]&nbsp;<= 10<sup>9</sup>`
• `nums` is a non-decreasing array.
• `-10<sup>9</sup>&nbsp;<= target&nbsp;<= 10<sup>9</sup>`

## The solution in Java code

 `````` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 `````` ``````class Solution { public int[] searchRange(int[] nums, int target) { int first = -1, last = -1; for (int i=0; i=0; i--) { if (nums[i]==target) last = i; continue; } return new int[] {last, first}; } } ``````