实现函数 int mysqrt(int x).
计算并返回 x 的平方根(向下取整)
数据范围:
要求:空间复杂度 ,时间复杂度
二分法
class Solution { public: /** * * @param x int整型 * @return int整型 */ int mysqrt(int x) { if(x==1) return 1; if(x==0) return 0; int left = 0; // 左边界 int right = x; // 右边界 while(left <= right) { int mid = left + (right-left)/2; // 防止int溢出,等同于(left+right)/2 if(mid==x/mid || (mid<x/mid && (mid+1)>x/(mid+1))) return mid; if(mid<x/mid) left=mid+1; if(mid>x/mid) right=mid-1; } return -1; } };
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param x int整型 * @return int整型 * * C语言声明定义全局变量请加上static,防止重复定义 * * C语言声明定义全局变量请加上static,防止重复定义 */ int Sqrt(int x ) { // write code her return mysqrt(x)/1; }就是懒~~~ 佬勿喷