leetcode 69. x 的平方根 思考分析
生活随笔
收集整理的這篇文章主要介紹了
leetcode 69. x 的平方根 思考分析
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目
實現(xiàn) int sqrt(int x) 函數(shù)。
計算并返回 x 的平方根,其中 x 是非負(fù)整數(shù)。
由于返回類型是整數(shù),結(jié)果只保留整數(shù)的部分,小數(shù)部分將被舍去。
示例 1:
輸入: 4
輸出: 2
示例 2:
輸入: 8 輸出: 2 說明: 8 的平方根是 2.82842…,
由于返回類型是整數(shù),小數(shù)部分將被舍去。
二分法
我們要找的是滿足 ans * ans <= x 中ans的最大值。
以0位左邊界,x為右邊界開始折半查找滿足情況的數(shù)。
由于題目要求的是向下取整的數(shù),而最后不滿足while條件退出時的start已經(jīng)在原有的基礎(chǔ)上+1了,所以需要進(jìn)行-1操作。
牛頓迭代法
用一階泰勒展式(即在當(dāng)前點的切線)代替原曲線,求直線與 x 軸的交點,重復(fù)這個過程直到收斂。
迭代公式為:
x =0.5( x + a/x)
總結(jié)
以上是生活随笔為你收集整理的leetcode 69. x 的平方根 思考分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 134. 加油站 思考
- 下一篇: 单调栈 leetcode整理(一)