您的位置:首页 > 游戏 > 手游 > 中国网络_discuz注册_线上营销公司_网站买卖交易平台

中国网络_discuz注册_线上营销公司_网站买卖交易平台

2024/10/8 18:24:34 来源:https://blog.csdn.net/m0_59860403/article/details/142743711  浏览:    关键词:中国网络_discuz注册_线上营销公司_网站买卖交易平台
中国网络_discuz注册_线上营销公司_网站买卖交易平台

题目描述

给你一个非负整数 x ,计算并返回 x 的 算术平方根 。

由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。

注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。

示例 1:

输入:x = 4
输出:2

示例 2:

输入:x = 8
输出:2
解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。

提示:

  • 0 <= x <= 231 - 1

题解

采用二分法解决

class Solution {public int mySqrt(int x) {long left=0;long right=x/2;//平方根一定比÷2要小while(left<=right){long mid=left+(right-left)/2;//防止溢出,就是找中点long sqr=mid*mid;long sqrnext=(mid+1)*(mid+1);if(sqr==x||(sqr<x&&sqrnext>x)){return(int) mid;}else if(sqr<x){left=mid+1;}else{right=mid-1;}}return x;}
}

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com