• 069 Sqrt(x) 求平方根


    实现 int sqrt(int x) 函数。
    计算并返回 x 的平方根。
    x 保证是一个非负整数。
    案例 1:
    输入: 4
    输出: 2
    案例 2:
    输入: 8
    输出: 2
    说明: 8 的平方根是 2.82842..., 由于我们想返回一个整数,小数部分将被舍去。
    详见:https://leetcode.com/problems/sqrtx/description/

    Java实现:

    方法一:暴力解

    class Solution {
        public int mySqrt(int x) {
            if(x<0){
                return x;
            }
            int begin=1;
            int end=x;
            int mid=0;
            while(begin<=end){
                mid=(begin+end)>>1;
                if(mid==x/mid){
                    return mid;
                }else if(mid<x/mid){
                    begin=mid+1;
                }else{
                    end=mid-1;
                }
            }
            return end;//结束条件end一定<begin,所以返回end
        }
    }
    

     方法二:牛顿迭代法

    class Solution {
        public int mySqrt(int x) {
            if(x<0){
                return x;
            }
            long v=x;
            while(v*v>x){
                v=(v+x/v)/2;
            }
            return (int)v;
        }
    }
    
  • 相关阅读:
    Document
    Document
    Document
    Document
    Document
    Document
    Document
    Document
    C#中的委托是什么
    C# Lambda表达式Contains方法 like
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8707806.html
Copyright © 2020-2023  润新知