func binarySearch(nums []int, target int) int {
//var left, right = 0, len(nums) - 1
var left int =0
var right int = len(nums) - 1
for left <= right {
mid := (left+right) >> 1
if nums[mid] == target {
return mid
} else if nums[mid] < target {
left = mid+1
} else {
right = mid-1
}
}
return -1
}
func rightBound(nums []int, target int) int {
if len(nums) == 0 {
return -1
}
left, right := 0, len(nums)
for left < right {
mid := (left+right)>>1
if nums[mid] == target {
left = mid+1
} else if nums[mid] < target {
left=mid+1
} else {
right=mid
}
}
if nums[left-1] == target {
return left-1
} else {
return -1
}
}
func leftBound(nums []int, target int) int {
if len(nums) == 0 {
return -1
}
left, right := 0, len(nums)
for left < right {
mid := (left+right)>>1
if nums[mid] == target {
right = mid
} else if nums[mid] < target {
left=mid+1
} else {
right=mid
}
}
if nums[left] == target {
return left
} else {
return -1
}
}
10-28
283

“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交