首页 > 代码库 > LeetCode69 Sqrt(x)
LeetCode69 Sqrt(x)
题意:
Implement int sqrt(int x)
.
Compute and return the square root of x.(Medium)
分析:
二分搜索套路题,不能开方开尽的时候,取结果整数位。
注意:判定条件中,用x / mid == mid而不是 mid * mid == x,否则可能出现int溢出。
代码:
1 class Solution { 2 public: 3 int mySqrt(int x) { 4 if (x == 0) { 5 return 0; 6 } 7 int start = 0, end = x; 8 while (start + 1 < end) { 9 int mid = start + (end - start) / 2;10 if (x / mid == mid) {11 return mid;12 }13 else if (x / mid > mid) {14 start = mid;15 }16 else {17 end = mid;18 }19 }20 if (x / end == end) {21 return end;22 }23 return start;24 }25 };
LeetCode69 Sqrt(x)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。