算法--牛顿迭代法

法一:

用二分查找找target 的中间值,就是target的平方根

java 复制代码
public int mySqrt(int x) {
        int l = 0, r = x;
        while (l <= r) {
            int mid = l + (r - l) / 2;
            if ((long) mid * mid <= x) {
                
                l = mid + 1;
            } else {
                r = mid - 1;
            }
        }
        return l-1;
    }

牛顿迭代法

解题思路参考:69. x 的平方根 - 力扣(LeetCode)

同样的方法可以用在其它的近似值计算中

java 复制代码
   public int mySqrt(int a) {
        long x = a;
        while (x * x > a) x = (x + a / x) / 2;
        return (int)x;
    }
相关推荐
颜酱2 小时前
二叉树分解问题思路解题模式
javascript·后端·算法
码路飞3 小时前
GPT-5.3 Instant 终于学会好好说话了,顺手对比了下同天发布的 Gemini 3.1 Flash-Lite
java·javascript
qianpeng8973 小时前
水声匹配场定位原理及实验
算法
SimonKing4 小时前
OpenCode AI编程助手如何添加Skills,优化项目!
java·后端·程序员
Seven975 小时前
剑指offer-80、⼆叉树中和为某⼀值的路径(二)
java
董董灿是个攻城狮15 小时前
AI视觉连载8:传统 CV 之边缘检测
算法
怒放吧德德17 小时前
Netty 4.2 入门指南:从概念到第一个程序
java·后端·netty
雨中飘荡的记忆18 小时前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
心之语歌21 小时前
基于注解+拦截器的API动态路由实现方案
java·后端
华仔啊1 天前
Stream 代码越写越难看?JDFrame 让 Java 逻辑回归优雅
java·后端