首先呢69的官方一解是牛顿迭代,然后我刚准备做367,就感觉要学下…
牛顿迭代法是一种可以用来快速求解函数零点的方法。具体历史就pass了
本质是借助泰勒级数,从初始值开始快速向零点逼近
有点像高中学的蛛网…
可恶啊我本以为我能相很多的结果原来就是知道个新思路…
算了水一次
class Solution {
public int mySqrt(int x) {
if (x == 0) {
return 0;
}
double C = x, x0 = x;
while (true) {
double xi = 0.5 * (x0 + C / x0);
if (Math.abs(x0 - xi) < 1e-7) {
break;
}
x0 = xi;
}
return (int) x0;
}
}
时间复杂度比二分找零点好