标签:结果 大于 str 它的 保留 思路分析 部分 输入 col
题目:x的平方根
实现 int sqrt(int x) 函数。
计算并返回 x 的平方根,其中 x 是非负整数。
由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
示例 1:
输入: 4
输出: 2
示例 2:
输入: 8
输出: 2
说明: 8 的平方根是 2.82842...,
由于返回类型是整数,小数部分将被舍去。
思路分析:二分查找和牛顿法
一、二分法
因为典型的二分查找返回的是某个附近的值,故得到返回的那个值之后判断一下它的平方大于x就返回mid-1,反之直接返回mid。
代码如下:
class Solution { public int mySqrt(int x) { int low=0; int high=x; int mid=0; while(low<=high){ mid=low+(high-low)/2; if((long)mid*mid==x){ return mid; } else if((long)mid*mid>x){ high=mid-1; } else{ low=mid+1; } } if((long)mid*mid>x){ return mid-1; } else{ return mid; } } }
标签:结果 大于 str 它的 保留 思路分析 部分 输入 col
原文地址:https://www.cnblogs.com/Yunus-ustb/p/12861156.html