一. 问题描述

实现 int sqrt(int x) 函数。

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

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

示例 1:

输入: 4

输出: 2

示例 2:

输入: 8

输出: 2

说明: 8 的平方根是 2.82842...,

由于返回类型是整数,小数部分将被舍去。

二. 解题思路

本题主要采用二分查找来查找x的平方根m。这道题是比较简单的,但是要注意在进行二分查找时,对其初始值要有所限定,其最大值不能大于int类型的最大值2147483647。

步骤一:设置二分查找法的起点visit_first和终点visit_second。

步骤二:利用二分查找法进行查找(原理就不说了),其中最大值的限制条件要注意。

三. 执行结果

执行用时 :2 ms, 在所有 java 提交中击败了93.59%的用户

内存消耗 :33.7 MB, 在所有 java 提交中击败了75.11%的用户

四. Java代码

class Solution {
public int mySqrt(int x) {
int visit_first=0;
int visit_second=((x)/2)+1;
if(x>=Integer.MAX_VALUE||visit_second>Math.sqrt(2147483647))
{
visit_second=(int)Math.sqrt(2147483647);
}
while(true)
{
int m=(visit_second+visit_first)/2;
if((m*m)==x||((m*m)<x&&(m+1)>(int)Math.sqrt(2147483647)))
{
return m;
}
if((m*m)>x&&(m-1)*(m-1)<x)
{
return m-1;
}
if((m*m)<x)
{
visit_first=m+1; }
else
{
visit_second=m-1;
} }
}
}

第69题:x的平方根的更多相关文章

  1. [LeetCode] 69. Sqrt(x) 求平方根

    Implement int sqrt(int x). Compute and return the square root of x, where x is guaranteed to be a no ...

  2. 力扣算法题—069x的平方根

    实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 示例 ...

  3. 【OCP题库-12c】最新CUUG OCP 071考试题库(69题)

    69.(31-1)choose the best answer: Evaluate the following query: SELECT INTERVAL '300' MONTH, INTERVAL ...

  4. 【leetcode 简单】第十七题 x 的平方根

    实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 示例 ...

  5. LeetCode第[69]题(Java):Sqrt(x)

    题目:求平方根 难度:Easy 题目内容: Compute and return the square root of x, where x is guaranteed to be a non-neg ...

  6. LeetCode 69 题

    1.题目要求 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出 ...

  7. LeetCode 69. Sqrt(x) (平方根)

    Implement int sqrt(int x). Compute and return the square root of x. x is guaranteed to be a non-nega ...

  8. leetcode刷题-69x的平方根

    题目 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4输出: 2 思 ...

  9. 欧拉工程第69题:Totient maximum

    题目链接 欧拉函数φ(n)(有时也叫做phi函数)可以用来计算小于n 的数字中与n互质的数字的个数. 当n小于1,000,000时候,n/φ(n)最大值时候的n. 欧拉函数维基百科链接 这里的是p是n ...

随机推荐

  1. Apache Commons Lang 学习栏目

    Apache Commons Lang 学习栏目 Apache Commons Lang 3.8.1 API https://mvnrepository.com/artifact/org.apache ...

  2. [转帖]从壹开始前后端分离【重要】║最全的部署方案 & 最丰富的错误分析

    从壹开始前后端分离[重要]║最全的部署方案 & 最丰富的错误分析 https://www.cnblogs.com/laozhang-is-phi/p/beautifulPublish-most ...

  3. Oracle常用指令

    /**  为了清晰化的显示:所有固定命令都是用大写格式显示 SQL语法分类:DML,DDL,DCL (1)DML(Data Manipulation Language ,数据库操作语言): 数据:增加 ...

  4. [DEBUG] ubuntu mysql root@localhost改了密码还是进不去ERROR 1698 (28000)

    之前用skip-grant-tables的方法免密进入Mysql,修改了root的密码, 当时重启服务后是可以用密码进入Mysql的.结果昨天突然又进不去了:) 所以更换方法,特此记录. ====== ...

  5. 第4章:LeetCode--链表

    2. Add Two Numbers: /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNo ...

  6. os路径

    import os linux下 例如: 我现在在 /home/settings.py文件下 # 获取当前的绝对路径 os.path.abspath(__file__) # 获取的内容 /home/s ...

  7. PAT(B)1015 德才论(C)

    题目链接:1015 德才论 (25 point(s)) 分析 由题意可知,需要将考生按照分数进行一个分类(级),然后在每一级中按照分数排序.输入的时候将每个人的总分,等级和录取人数先算出来.然后按照自 ...

  8. Django中的Object Relational Mapping(ORM)

    ORM 介绍 ORM 概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用 ...

  9. qt-博客

    将QQ中的图文聊天内容显示到Qt界面: http://www.qter.org/portal.php?mod=view&aid=12

  10. 学习嵌入式为什么要有uboot(深度解析)

    ref:http://www.elecfans.com/d/617674.html     为什么要有uboot 1.1.计算机系统的主要部件 (1)计算机系统就是以CPU为核心来运行的系统. 典型的 ...