Sqrt(x)
2016-06-12 21:27
239 查看
题目描述:
Implement
Compute and return the square root of x.
计算平方根,如果直接用暴力法,会超时:
这个题显然会想到二分法,代码如下:
public class Solution {
public int mySqrt(int x) {
if(x<=1) {
return x;
}
int begin = 1;
int end = x;
int middle = 0;
while(begin<=end) {
middle = begin + (end - begin)/2;
//不要写成middle*middle==x,会溢出
if(middle==x/middle) {
return middle;
} else {
if (middle<x/middle) {
begin = middle + 1;
} else {
end = middle - 1;
}
}
}
return begin;
}
}这道题还有一种变形是给你一个数x,判断是否是一个完全平方数。基本思路一样,二分搜索1到x/2,结束条件是begin的平方大于x。
Implement
int sqrt(int x).
Compute and return the square root of x.
计算平方根,如果直接用暴力法,会超时:
这个题显然会想到二分法,代码如下:
public class Solution {
public int mySqrt(int x) {
if(x<=1) {
return x;
}
int begin = 1;
int end = x;
int middle = 0;
while(begin<=end) {
middle = begin + (end - begin)/2;
//不要写成middle*middle==x,会溢出
if(middle==x/middle) {
return middle;
} else {
if (middle<x/middle) {
begin = middle + 1;
} else {
end = middle - 1;
}
}
}
return begin;
}
}这道题还有一种变形是给你一个数x,判断是否是一个完全平方数。基本思路一样,二分搜索1到x/2,结束条件是begin的平方大于x。
相关文章推荐
- Caused by: Unable to load bean: type:com.opensymphony.xwork2.ObjectFactory class:org.apache.struts2.
- HDU 2512 一卡通大冒险(dp)
- 协议分析
- git常用命令
- KinectV2 in Qt 在Qt中使用KinectV2编程
- 小飞的电梯调度算法
- 碰到的一个编码问题
- C语言URL解析器(代码分享) 3ff8
- 山东省第七届ACM省赛------Triple Nim
- Module模式
- 正方体旋转demo
- 转 - ubuntu apache2下目录结构
- 禁止鼠标拖动图片在新窗口打开
- 开源一套数据异地备份系统
- Extjs ComboBox 动态选中第一项
- NFS 网络文件系统 配置 挂载 卸载
- sqlite操作总结(二)
- eclipse/myeclipse 解决editor does not contain a main type的方法
- Linux下 swap分区 虚拟内存 的创建、调整、修改、挂载
- 防止连续点击打开两个重复页面的小技巧