二分法找錯誤簡直是個玄學!!!

2021-10-17 20:27:30 字數 746 閱讀 1909

二分法的時候難買出現各種各樣的小bug,小到找了好幾遍都找不到錯在**?

那麼**是需要我們警惕的呢?

1、不再單獨使用字母 l ,相信我,在有的時候,我們菜鳥是發現不了 l 和 1 的區別的時候(在這裡顯示的卻很清楚)

l

1

那上面的如果沒有顏色的差別,不知道大家,反正我是分不清的。。

2、我們看下面的一段**,是力扣上面的一道題,可能大佬一看就知道**錯了,但是我是搞了半天沒發現我**有問題,去看大家的題解才發現,我錯**了,問題是啥呢?大家先看看

class

solution

:def

mysqrt

(self, x:

int)

->

int:

light,right,ans =

0,x,-1

while light < right:

mid =

(light+right)//2

if mid * mid <= x:

ans = mid

light = mid +

1else

: right = mid -

1return ans

→相信聰明的你肯定早就發現了,問題就在於while 判斷的時候,少了乙個 = (等號),結果浪費了好幾分鐘

警惕任何之前發生過問題的地方,下次要著重的看

二分法找數字

二分法找數字 首先我們應該了解什麼是二分法,二分法是指對於區間 a,b 上連續不斷且f f 0的函式y f,通過不斷地把函式f的零點所在的區間一分為二,使區間的兩個端點逐步逼近所求值,進而找到所求值。要完成這個操作,系統再找到之前都要不斷查詢,我們並不知道要迴圈的次數,所以我選擇用while迴圈,最...

C 二分法查詢,遞迴二分法

用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...

python二分法查詢 Python 二分法查詢

二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...