LintCode:Sqrt(x) x的平方根
来源:互联网 发布:trittec防霾窗纱 知乎 编辑:程序博客网 时间:2024/04/29 07:24
实现 int sqrt(int x)
函数,计算并返回 x 的平方根
样例
sqrt(3) = 1
sqrt(4) = 2
sqrt(5) = 2
sqrt(10) = 3
挑战
O(log(x))
我的代码:注意平方值可能会超过int,故使用long long
class Solution {
public:
/**
* @param x: An integer
* @return: The sqrt of x
*/
int sqrt(int x) {
// write your code here
return search(0,x,x);
}
int search(int s, int n, int x)
{
long long t = (s + n)/2;
long long tt = t*t;
if(tt > (long long)x)
return search(s, t, x);
if(tt < x)
{
for(long long i=t; i<=n; i++)
{
long long ii = i * i;
if(ii > (long long)x)
return (int)i-1;
if(ii == (long long)x)
return (int)i;
}
}
if(tt == (long long)x)
return (int)t;
}
};
更好的二分算法,参见:http://blog.csdn.net/wutingyehe/article/details/46648991
- LintCode Sqrt(x) x的平方根
- LintCode:Sqrt(x) x的平方根
- LintCode-x的平方根
- LintCode x的平方根
- LintCode: x的平方根
- LintCode:x的平方根
- lintcode:x的平方根
- LintCode : x的平方根
- x的平方根-LintCode
- lintcode--x的平方根
- lintcode:x的平方根
- lintcode-x的平方根-141
- x的平方根(LintCode)
- LintCode x的平方根 JAVA
- Sqrt(x) 求平方根
- leetcode69---Sqrt(x)(求x的平方根)
- 141.Sqrt(x)-x的平方根(容易题)
- Sqrt(x) 求平方根@LeetCode
- 大数据Spark “蘑菇云”行动第50课程 Spark 2.0项目概述 项目!!!大项目!!!超大型大数据项目!!!
- 堆和栈的区别(转过无数次的文章)
- 线性结构--->栈的顺序存储实现
- static,auto,register,extern的区别;
- Spring读取properties配置文件
- LintCode:Sqrt(x) x的平方根
- Android7.0 MessageQueue
- Hibernate常见错误分析(一)
- SimpleAdapter 使用
- 牛人博客之--创造晴天专栏-Android调试开发
- BOM
- usb
- poj2386-dfs
- Leetcode 68 Text Justification