【leetcode】【69】Sqrt(x)

来源:互联网 发布:mac 蓝牙键盘 编辑:程序博客网 时间:2024/05/14 02:09

一、问题描述

Implement int sqrt(int x).

Compute and return the square root of x.

二、问题分析

求一个正数的平方根,最笨的方法就是从0到x挨个试。显然会超时,那么重新考虑一下,从0-x这不是一个有序的数组吗?因此可以采用二分查找法。需要注意的就是从0-x求平方的过程可能会溢出,因此平方值用long来存储即可。

三、Java AC代码

public int mySqrt(int x) {int low = 0;int high = x;long mid;while(low<=high){mid = (low+high)/2;if (mid*mid==x) {return (int)mid;}else if (mid*mid > x) {high = (int) (mid - 1);}else low = (int) (mid + 1);}return high;}


0 0
原创粉丝点击