求算术平方根
題目 求算術平方根
實現 int sqrt(int x) 函數。
計算并返回 x 的平方根,其中 x 是非負整數。
由于返回類型是整數,結果只保留整數的部分,小數部分將被舍去。
示例
輸入: 8 輸出: 2 說明: 8 的平方根是 2.82842..., 由于返回類型是整數,小數部分將被舍去。題解
沒什么就是二分查找的知識點,注意邊界問題,二分查找記得使用右中位數
class Solution {public int mySqrt(int x) {//二分查找,注意使用的是右中位數避免錯誤int result = 0;if (x==0) return result;long left = 1;long right = x >> 1;long mid;long square;while (left < right){//注意使用的是右中位數避免錯誤,死循環mid = (left + right + 1) >> 1; square = mid * mid;if (square > x)right = mid - 1;elseleft = mid;}result = (int)left;return result; } }總結
- 上一篇: 常识性知识,高速快捷知识
- 下一篇: 计算并返回 x 的 算术平方根