2018-05-08 69. Sqrt(x)

題意:給你一個(gè)數(shù)x,返回它的平方根,如果平方根是小數(shù),向下取整。
解題思路:使用二分查找x的平方根ans,條件是不滿足ans * ans > x,且滿足(ans + 1) * (ans + 1) > x,此時(shí)ans為答案。
解題過(guò)程中要有兩個(gè)防溢出操作:
1、條件判斷時(shí)使用mid > x / mid;
2、求中間mid值使用mid = low + (high - low) / 2;

class Solution {
public:
    int mySqrt(int x) {
        if(x == 0) return x;
        int low = 1, high = x;
        while(true)
        {
            int mid = low + (high - low) / 2;
            if(mid > x / mid)
            {
                high = mid - 1;
            }else
            {
                if((mid + 1) > x / (mid + 1))
                    return mid;
                low = mid + 1;
            }
        }
    }
};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問(wèn)題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,916評(píng)論 0 33
  • 基于學(xué)生學(xué)習(xí)共同體培育語(yǔ)文生態(tài)課堂文化的研究 近年來(lái),隨著現(xiàn)代教育理念的不斷深入與...
    火車頭123閱讀 2,280評(píng)論 0 8
  • 轉(zhuǎn)載自http://wanwu.tech/2017/03/15/functions-and-closures/ 簡(jiǎn)...
    quitus閱讀 597評(píng)論 0 0
  • 分治策略 本文包括分治的基本概念二分查找快速排序歸并排序找出偽幣棋盤覆蓋最大子數(shù)組 源碼鏈接:https://gi...
    廖少少閱讀 1,992評(píng)論 0 7
  • 動(dòng)態(tài)規(guī)劃 111. 爬樓梯思路類似斐波那契數(shù)列注意考慮第 0 階的特殊情況 272. 爬樓梯 II思路類似上題,只...
    6默默Welsh閱讀 2,603評(píng)論 0 1

友情鏈接更多精彩內(nèi)容