【每日一题】2021年12月11日-69. Sqrt(x)/x的平方根
给你一个非负整数 x ,计算并返回 x 的 算术平方根 。
由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。
注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sqrtx
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
方法:二分查找
class Solution { public int mySqrt(int x) { if(x == 1) { return 1; } int min = 0; int max = x; //循环条件,二者必须相差1☆ while(max > min + 1) { //mid的值不是min + (max + min) / 2;而是一加一减 //int mid = (max + min) / 2; int mid = min + ((max - min) >> 1);//必须加括号☆ if(x / mid < mid) { //不是自增自减☆ max = mid; } else { min = mid; } } return min; } }
本文来自博客园,作者:哥们要飞,转载请注明原文链接:https://www.cnblogs.com/liujinhui/p/15677127.html