力扣 二分查詢

2021-09-26 08:12:49 字數 1510 閱讀 7559

1.確定二分的邊界

2.編寫二分的**框架

3.設計乙個check(性質)

4.判斷一下區間如何更新

5.如果更新方式時l=mid,r=mid+1,那麼在算mid的時候加1

#includeusing namespace std;

int mysqrt(int x)

return l;

}int main()

return r;

}

vectorsearchrange(vector& nums, int target)

; int l = 0,r = nums.size() - 1;

while(l>1;

if(nums[mid] >= target)

r = mid;

else

l = mid+1;

} if(nums[r] != target)

return ;

int start = r; //左邊第乙個找到的數

l=0,r=nums.size()-1;

while(l>1;

if(nums[mid] <= target)

l = mid;

else

r = mid-1;

}int end = r; //右邊的最後乙個數

if(matrix[r/n][r%n] != target) //找到的值和目標值不等返回false

}if(nums[l] == target) //只能是l不能是r,邊界問題

return l;

else

return -1;

}

力扣 二分應用題

1.875.愛吃香蕉的珂珂,傳統二分,左閉右開,返回left right即可。2.222.完全二叉樹的節點個數,利用完全二叉樹結合二分,位運算,注意level 0的特殊情況,返回left 1。需要靈活運用二分查詢。3.69.x 的平方根,上限粗略定為x,注意迴圈條件 l r的賦值 返回結果。4.74...

二分查詢的實現 特性及 力扣實戰題目解析

二分查詢的前提 1.目標函式單調性 單調遞增或遞減 2.存在上下界 bounded 3.能夠通過索引訪問 index accessible 模版 left right 0,len array 1 while left right mid left right 2 if array mid targe...

資料結構與演算法筆記 二分查詢 力扣1011

傳送帶上的包裹必須在 d 天內從乙個港口運送到另乙個港口。傳送帶上的第 i 個包裹的重量為 weights i 每一天,我們都會按給出重量的順序往傳送帶上裝載包裹。我們裝載的重量不會超過船的最大運載重量。返回能在 d 天內將傳送帶上的所有包裹送達的船的最低運載能力。以船容量為標定進行二分查詢,最小船...