Skip to content

Instantly share code, notes, and snippets.

@Josephchinedu
Last active September 8, 2022 11:10
Show Gist options
  • Save Josephchinedu/c7d5c59620ee7cbd4c53d8192a79e260 to your computer and use it in GitHub Desktop.
Save Josephchinedu/c7d5c59620ee7cbd4c53d8192a79e260 to your computer and use it in GitHub Desktop.
FIND THE FIRST AND LAST ELEMENT IN A SORTED ARRAY
package main
import "fmt"
func main() {
var nums = []int{5, 7, 7, 8, 8, 10}
var target = 8
var result = searchRange(nums, target)
fmt.Println(result)
}
func searchRange(nums []int, target int) []int {
var result = []int{-1, -1}
var left = 0
var right = len(nums) - 1
var mid = 0
for left <= right {
mid = left + (right-left)/2
if nums[mid] == target {
i := mid
// getting start index of target value
for i >= 0 && nums[i] == target {
i--
}
result[0] = i + 1
// getting end index of target value
i = mid
for i < len(nums) && nums[i] == target {
i++
}
result[1] = i - 1
return result
} else if nums[mid] > target {
right = mid - 1
} else {
left = mid + 1
}
}
return result
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment