AcWing 789. 数的范围-golang
原题链接
简单
作者:
渲染
,
2024-03-30 15:32:50
,
所有人可见
,
阅读 1
package main
import "fmt"
const N int = 100000
var nums = [N]int{}
func search(left ,right ,target int)(int,int){
i , j := left,right
for i < j{
mid := (i+j) >> 1
if nums[mid] >= target{
j = mid
}else{
i = mid +1
}
}
if nums[i] != target{
return -1 ,-1
}
for left < right{
mid := (left+right+1) >> 1
if nums[mid] <= target{
left = mid
}else{
right = mid -1
}
}
return j,left
}
func main(){
var n , q int
fmt.Scan(&n,&q)
for i:=0;i<n;i++{
fmt.Scan(&nums[i])
}
for q > 0{
var target int
fmt.Scan(&target)
l, r := search(0,n-1,target)
fmt.Printf("%d %d\n",l,r)
q --
}
}