LeetCode:Sqrt(x)
2016-05-22 22:48
363 查看
Sqrt(x)
Total Accepted: 94989 Total
Submissions: 373552 Difficulty: Medium
Implement
Compute and return the square root of x.
Subscribe to see which companies asked this question
Hide Tags
Binary Search Math
Hide Similar Problems
(M) Pow(x, n)
思路:二分查找。
如:x = 10
1 2 3 4 5 6 7 8 9 10
设:left = 1,right = 10,则 mid = (1+10)/2 = 5
由于mid * mid > x * x,则right = mid;这时,left = 1,right = 5,mid = (1+5)/2 = 3;
由于mid * mid <= x * x,则left = mid;这时,left = 3,right = 5,mid = (3+5)/2 = 4;
由于mid * mid > x * x,则right = mid;这时,left = 3,right = 4,mid = (3+4)/2 = 3;
由于 left + 1 == right,break;
返回结果:left = 3;
c++ code:
Total Accepted: 94989 Total
Submissions: 373552 Difficulty: Medium
Implement
int sqrt(int x).
Compute and return the square root of x.
Subscribe to see which companies asked this question
Hide Tags
Binary Search Math
Hide Similar Problems
(M) Pow(x, n)
思路:二分查找。
如:x = 10
1 2 3 4 5 6 7 8 9 10
设:left = 1,right = 10,则 mid = (1+10)/2 = 5
由于mid * mid > x * x,则right = mid;这时,left = 1,right = 5,mid = (1+5)/2 = 3;
由于mid * mid <= x * x,则left = mid;这时,left = 3,right = 5,mid = (3+5)/2 = 4;
由于mid * mid > x * x,则right = mid;这时,left = 3,right = 4,mid = (3+4)/2 = 3;
由于 left + 1 == right,break;
返回结果:left = 3;
c++ code:
class Solution { public: int mySqrt(int x) { if(x <= 1) return x; int left = 1,right = x; while(left + 1 < right) { int mid = left + (right-left)/2; if(mid <= x/mid) left = mid; else right = mid; } return left; } };
相关文章推荐
- PHP数据库连接mysql与mysqli的区别与用法
- 计算机网络-计算机网络和因特网
- zzu 10480: 回文串 -- 模拟(最怕这种表面是算法,实际暴力的坑题)
- springMVC传对象参数、返回JSON格式数据
- 语法分析(12)...
- JS入门--插入JS代码
- java适配器设计模式
- HDU 5698 瞬间移动
- Hibernate投影查询
- 排序之基于单链表插入排序
- Redis 集群部署
- HyperLogLog: 解读Cardinality Estimation算法(第一部分:基本概念)
- 结构体/联合体 所占用内存
- thinkphp集成系列之阿里云oss
- 第三方支付原理与概述
- 傅里叶变换
- 小白分享学习成果,大神勿喷。用bootstrap做的,引用就不再多说了,哪里写的不好,您多指点
- thinkphp集成系列之阿里云oss
- 《深入理解Android内核设计思想》学习笔记
- 8个类,1500行代码搞定插件化