關於二分查找中的中點問題

最近寫整數的二分查找,也就是二分index,期間會用到mid = (left + right) / 2;這個求他的中點,以前一直這麼用,也和mid = left + (right - left) / 2交叉着用,沒發現什麼區別,並且我以前也手推過,發現這兩個數學上是等價的,然而,今天作了一道二分的題目,發現用前面這種方式寫的話就會出錯,後面的那種方式就對,查了一下緣由發現是前者可能在執行加法的時候會溢出,因此儘可能使用後者,固然,若是把int換成long long也是 能夠AC的spa

相關文章
相關標籤/搜索