我們把問題分解成兩個子問題:
1.已知 必殺技傷害x 驗證能否獲勝
2.二分查詢能夠獲勝的最小傷害x
考慮二分查詢的上下邊界:
package main
import
("fmt"
"sort"
)//求和
func
sum(arr [
]int
)(ans int
)return
}//求較小值
func
min(i,j int
)int
else
}//驗證能否獲勝
func
f(ohs [
]int
,n,t,m,x int
)bool
} sort.
ints
(hs)
i:=0for
;hs[i]==0
;i++
hs=hs[i:]if
len(hs)==0
n=len(hs)
if n<=m
else
}func
main()
//法力值大於回合數時多的也沒用
if m>t
//獲取怪物血量
var hs [
]int
fmt.
scan
(&n,
&t,&m)
for i:=
0;i//平a取勝
if t>
sum(hs)
sort.
ints
(hs)
//二分查詢
l,r:=
0,hs[
len(hs)-1
]if!f
(hs,n,t,m,r)
for l1else
} fmt.
println
(r)}
Python程式設計題51 二分查詢
給定乙個含有 n 個無重複整數的公升序列表 nums 和乙個目標值 target 請查詢 nums 中的 target,如果目標值存在返回下標,否則返回 1。例如 給定乙個列表 nums 1,0,3,5,9,12 target 9 返回結果 4 給定乙個列表 nums 1,0,3,5,9,12 ta...
二分查詢簡單題
leetcode 35.search insert position 最普通的binary search,若target存在,則返回所在下標 若target不存在,則返回target待插入的位置,本質上就是實現lower bound函式 無論mid left right left 2,還是mid l...
基礎程式設計 二分查詢
題目要求 本題要求實現二分查詢演算法。函式介面定義 position binarysearch list l,elementtype x 其中list結構定義如下 typedef int position typedef struct lnode list struct lnode l是使用者傳入的...