二分法的時候難買出現各種各樣的小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 ...