leetcode 69. x 的平方根(Sqrt(x))

目录

  • 题目描述:
  • 示例 1:
  • 示例 2:
  • 解法:

题目描述:

实现 int sqrt(int x) 函数。

计算并返回 x 的平方根,其中 x 是非负整数。

由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。

示例 1:

    输入: 4
    输出: 2

示例 2:

    输入: 8
    输出: 2
    说明: 8 的平方根是 2.82842...,
         由于返回类型是整数,小数部分将被舍去。

解法:

class Solution {
public:
    int mySqrt(int x) {
        if(x == 0 || x == 1){
            return x;
        }else{
            long long l = 1, r = x;
            long long mid = 0;
            while(l <= r){
                mid = l + (r - l)/2;
                long long val = mid * mid;
                if(val == x){
                    return mid;
                }else if(val < x){
                    l = mid + 1;
                }else{
                    r = mid - 1;
                }
            }
            return r;
        }
    }
};

原文地址:https://www.cnblogs.com/zhanzq/p/10556164.html

时间: 2024-10-26 18:32:08

leetcode 69. x 的平方根(Sqrt(x))的相关文章

LeetCode 69 x 的平方根

链接:https://leetcode-cn.com/problems/sqrtx 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4输出: 2 示例 2: 输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去. 这道题是一道经典的用二分来解的题,二分有两个模版,当所求的性质在右边的时候,用模版1,当所求性质在左边的

leetcode 69.x的平方根(Java 二分查找 easy)

https://leetcode-cn.com/problems/sqrtx/ 实现int sqrt(int x)函数,给定一个数字,求sqrt(x)并且保留整数部分. 二分查找,令l=1,h=x,判断l<=h,当跳出循环时,即sqrt(x)不为整数时,return h,因为跳出循环时l>h,本题要求只保留整数部分,不四舍五入. class Solution { public int mySqrt(int x) { if(x<=1) return x; int l=1,h=x; whil

leetcode——69.x的平方根

超出时间限制.. 1 class Solution: 2 def mySqrt(self, x: int) -> int: 3 for i in range(0,x//2+2): 4 if x>=i**2 and x<(i+1)**2: 5 return i 好气哦...加油想想怎么改进... 修改以后通过,但是还是太好,修改了将近40分钟,好没有效率啊: 1 class Solution: 2 def mySqrt(self, x: int) -> int: 3 i=x 4 m=

leetcode 69题 思考关于二分查找的模版

leetcode 69, Implement int sqrt(int x). Compute and return the square root of x, where x is guaranteed to be a non-negative integer. Since the return type is an integer, the decimal digits are truncated and only the integer part of the result is retu

LeetCode --- 69. Sqrt(x)

题目链接:Sqrt(x) Implement int sqrt(int x). Compute and return the square root of x. 这道题的要求是实现int sqrt(int x),即计算x的平方根. 考虑二分,即先令l和r分别为1和x/2+1(x的平方根一定小于等于x/2+1),然后m等于(l+r)/2,不断比较m*m和x的大小. 由于m*m的时候,可能溢出,因此可以用除法代替乘法,或者采用long long类型. 时间复杂度:O(logn) 空间复杂度:O(1)

Leetcode 69. Sqrt(x)及其扩展(有/无精度、二分法、牛顿法)详解

Leetcode 69. Sqrt(x) Easy https://leetcode.com/problems/sqrtx/ Implement int sqrt(int x). Compute and return the square root of x, where x is guaranteed to be a non-negative integer. Since the return type is an integer, the decimal digits are truncat

【leetcode刷题笔记】Sqrt(x)

Implement int sqrt(int x). Compute and return the square root of x. 题解:二分的方法,从0,1,2.....x搜索sqrt(x)的值. 代码如下: 1 public class Solution { 2 public int sqrt(int x) { 3 long l = 0; 4 long r = x; 5 6 while(l <= r){ 7 long mid = l + (r-l)/2; 8 if(x == mid*mi

Leetcode 69. Sqrt(x) 解题报告【C库函数sqrt(x)模拟-求平方根】

69. Sqrt(x) Total Accepted: 93296 Total Submissions: 368340 Difficulty: Medium 提交网址: https://leetcode.com/problems/sqrtx/ Implement int sqrt(int x). Compute and return the square root of x. 分析: 解法1:牛顿迭代法(牛顿切线法) Newton's Method(牛顿切线法)是由艾萨克·牛顿在<流数法>(M

LeetCode 69 _ Sqrt(x) 求平方根 (Easy)

Description: Implement int sqrt(int x). Compute and return the square root of x, where x is guaranteed to be a non-negative integer. Since the return type is an integer, the decimal digits are truncated and only the integer part of the result is retu