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