首页 > 代码库 > Leetcode:Sqrt(x)
Leetcode:Sqrt(x)
Implement int sqrt(int x)
.
Compute and return the square root of x.
分析:二分查找。首先确定二分查找终止的条件和返回条件,其次对于与数字有关的题要注意int的表示范围防止溢出(比如该题两个int相乘可能会超过int的范围,故采用x/mid与mid比较大小)。代码如下:
class Solution {public: int sqrt(int x) { if(x == 0) return 0; if(x == 1 || x == 2 || x == 3) return 1; int l = 1, r = x/2; while(l <= r){ int mid = (l + r)/2; if(x/mid == mid || x/mid > mid && x/(mid+1) < (mid+1)) return mid; if(x/mid < mid) r = mid-1; else if(x/mid > mid) l = mid + 1; } }};
Leetcode:Sqrt(x)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。