69.x的平方根
- x 的平方根
實現 int sqrt(int x) 函式。
計算並返回 x 的平方根,其中 x 是非負整數。
由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。
示例 1:
輸入: 4
輸出: 2
示例 2:
輸入: 8
輸出: 2
(說明: 8 的平方根是 2.82842…, 由於返回型別是整數,小數部分將被捨去。)
方法:二分查詢法
由於 x 平方根的整數部分 ans 是滿足 k^2 ≤x 的最大 k值,因此我們可以對 k進行二分查詢,從而得到答案。
二分查詢的下界為 0,上界可以粗略地設定為 x。在二分查詢的每一步中,我們只需要比較中間元素 mid 的平方與 x 的大小關係,並通過比較的結果調整上下界的範圍。由於我們所有的運算都是整數運算,不會存在誤差,因此在得到最終的答案 ans 後,也就不需要再去嘗試 ans+1了。
class Solution {
public int mySqrt(int x)
{
int left = 0, right = x, ans = 0;
while (left <= right)
{
int mid = left + (right - left) / 2;
if ((long) mid * mid <= x)
{
ans = mid;
left = mid + 1;
}
else
{
right = mid - 1;
}
}
return ans;
}
}
相關文章
- LeetCode 69[x的平方根]LeetCode
- Lisp求平方根Lisp
- Python求一個數的平方根Python
- LeetCode LCR072[x的平方根]LeetCode
- 關於求平方根
- 二分搜尋小結-x的平方根
- 數學 —— 其他 —— 快速求逆平方根
- 求平方根 && 牛頓迭代法
- LeetCode 之 JavaScript 解答第69題 —— X 的平方根(Squrt(x))LeetCodeJavaScript
- 讓我們一起啃演算法----x 的平方根演算法
- 力扣之x的平方根(雙指標解法思路分析最佳化)力扣指標
- scheme 求平方根函式 sqrt 牛頓法實現Scheme函式
- 編寫一個函式求平方根,如果輸入的是負數,丟擲自定義型別的異常。如果輸出的是正數和零,則正常輸出其平方根...函式型別
- 《崩壞:星穹鐵道》三測試玩:夢的平方根和工業化
- JavaScript的this的指向JavaScript
- lua的for的坑
- Element-UI的table表格的樣式的常用的操作UI
- 新的地方,新的工作,新的生活
- Spingboot的Shiro的配置boot
- SqlServer的with(nolock)的用法SQLServer
- kotlin的Gson的使用Kotlin
- 做人的道理的句子
- nuxt的代理的配置UX
- 我的新的旅程
- Idea的Spring的建立IdeaSpring
- 逝去的《我的暑假》
- A的女兒是B的女兒的媽媽,A是B的誰?
- 找對的方向,用對的方法,做好的方案
- MySQL 缺少主鍵的表的效能下降的原因MySql
- peewee 的 save 的 only 引數是幹嘛的?
- Kubernetes裡的ConfigMap的用途
- 新的神奇的部署策略
- vue的nextTick的實現Vue
- 招聘人才的更好的方式
- 我的通行你的證
- QtWidgetsApplication中的EventDispatcher的建立QTAPP
- js中的Boolean 的妙用JSBoolean
- 有效的儲存的方法