【二分法万能模板,告别死循环、越界】Leecode 69. Sqrt(x)——Leecode日常刷题系列
生活随笔
收集整理的這篇文章主要介紹了
【二分法万能模板,告别死循环、越界】Leecode 69. Sqrt(x)——Leecode日常刷题系列
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目鏈接:https://leetcode-cn.com/problems/sqrtx/
題解匯總:https://leetcode-cn.com/problems/max-increase-to-keep-city-skyline/
題目描述
給你一個非負整數(shù) x ,計算并返回 x 的 算術平方根 。
由于返回類型是整數(shù),結果只保留 整數(shù)部分 ,小數(shù)部分將被 舍去 。
注意:不允許使用任何內置指數(shù)函數(shù)和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。
示例 1:
輸入:x = 4
輸出:2
示例 2:
輸入:x = 8
輸出:2
解釋:8 的算術平方根是 2.82842…, 由于返回類型是整數(shù),小數(shù)部分將被舍去。
Although the basic idea of binary search is comparatively straightforward, the details can be surprisingly tricky -------Knuth翻譯:盡管二分查找的基本理念十分簡單明了,但是它的細節(jié)queue令人抓狂 ----唐納德·克努特(KMP發(fā)明者)
發(fā)現(xiàn)了一個寶藏up,他的二分查找模板考慮到了二分查找?guī)缀跛械募毠?jié),包括死循環(huán)、越界等等,視頻地址:https://www.bilibili.com/video/BV1d54y1q7k7?from=search&seid=17631535455427077045&spm_id_from=333.337.0.0
class Solution { public:int mySqrt(int x) {if (x == 1) return 1;long long l = -1, r = x/2, m;while (l + 1 != r) {m = l + ((r - l)>>1);if (m * m < x) {l = m;} else {r = m;}}return (r*r > x ? r-1 : r);} };
??????——我要一步一步往上爬,在最高點乘著葉片往前飛,小小的天流過的淚和汗,總有一天我有屬于我的天。
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的【二分法万能模板,告别死循环、越界】Leecode 69. Sqrt(x)——Leecode日常刷题系列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【解题报告】Leecode 372. 超
- 下一篇: 【二分法万能模板】Leecode 74.