题解 | #牛牛算术#
牛牛算术
https://www.nowcoder.com/practice/a5d2dc9487df41bd9552bb90d498ac27
#include <cfloat> #include <climits> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param x int整型 * @return int整型 */ int sqrt(int x) { // write code here int jd = 0; int low = 0; int high = x; double mid = DBL_MAX; double lastmid = DBL_MIN; while (abs(mid - lastmid) > jd) { lastmid = mid; mid = (low + high) / 2; if (mid * mid > x) high = mid; else low = mid; } return mid; } };
唯一不能理解的是前面尝试时使用了INT_MAX和INT_MIN,结果在最后一个测试用例时超时,改回DBL之后就通过了