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*mid)
 9                 return (int)mid;
10             else if(x < mid*mid)
11                 r = mid-1;
12             else {
13                 l = mid+1;
14             }
15         }
16         return (int)r;
17     }
18 }

需要注意的一点就是mid*mid的值有可能超过int的范围,所以要用long型规定各个变量。开始用的int型,结果出现了TLE的错误,猜想是int越界以后变成负数,就一直找不到sqrt(x)的值。

转载于:https://www.cnblogs.com/sunshineatnoon/p/3853726.html

【leetcode刷题笔记】Sqrt(x)相关推荐

  1. LeetCode刷题笔记(算法思想 四)

    LeetCode刷题笔记(算法思想 四) 七.动态规划 斐波那契数列 70. 爬楼梯 198. 打家劫舍 213. 打家劫舍 II 信件错排 母牛生产 矩阵路径 64. 最小路径和 62. 不同路径 ...

  2. 卷进大厂系列之LeetCode刷题笔记:二分查找(简单)

    LeetCode刷题笔记:二分查找(简单) 学算法,刷力扣,加油卷,进大厂! 题目描述 涉及算法 题目解答 学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 给定一个 n 个元素有序的(升序) ...

  3. LeetCode刷题笔记2——数组2

    LeetCode刷题笔记2--数组2 重塑数组 题目 在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原 ...

  4. 小何同学的leetcode刷题笔记 基础篇(01)整数反转

    小何同学的leetcode刷题笔记 基础篇(01)整数反转[07] *** [01]数学取余法*** 对数字进行数位操作时,常见的方法便是用取余的方法提取出各位数字,再进行操作 操作(1):对10取余 ...

  5. LeetCode刷题笔记汇总

    LeetCode刷题笔记汇总 第一次刷LeetCode写的一些笔记. 1.两数之和 3.无重复字符的最长子串 15.三数之和 18.四数之和 19.删除链表的倒数第 N 个结点 20.有效的括号 21 ...

  6. 【leetcode刷题笔记】动态规划

    #[leetcode刷题笔记]动态规划 石子游戏 public boolean stoneGame(int[] piles) {int N = piles.length;// dp[i][j] is ...

  7. LeetCode刷题笔记-动态规划-day4

    文章目录 LeetCode刷题笔记-动态规划-day4 55. 跳跃游戏 1.题目 2.解题思路 3.代码 45. 跳跃游戏 II 1.题目 2.解题思路 3.代码 LeetCode刷题笔记-动态规划 ...

  8. LeetCode刷题笔记- 15.三数之和

    LeetCode刷题笔记- 15.三数之和 C语言 题目 注意点 C语言 /*** Return an array of arrays of size *returnSize.* The sizes ...

  9. LeetCode刷题笔记第6题:Z字形变换

    LeetCode刷题笔记第6题:Z字形变换 想法: 要完成字符串根据给定的行数从上往下,从左到右完成Z字形排列.当只有一行时直接返回原字符串,当行数大于1时,先以行数构建一个行数数值个空字符串的列表, ...

  10. leetcode刷题笔记——二分查找

    leetcode刷题笔记--二分查找 目前完成的贪心相关的leetcode算法题序号: 中等:80,81 困难:4 来源:力扣(LeetCode) 链接:https://leetcode-cn.com ...

最新文章

  1. 分库分表之后,主键的处理方法
  2. N个数的全排列 -------指定排头法
  3. java基础(九) 可变参数列表介绍
  4. synchronized 面试五连击
  5. win8.1 USB启动盘制作(不支持UEFI,不支持GPT分区)
  6. meta 标签的学习
  7. java socket 浏览器_java实现websocket(图文)
  8. Backend Qt5Agg is interactive backend. Turning interactive mode on.
  9. 基于Debian的Linux发行版安装深度音乐及其插件,支持ubunut16
  10. docker部署showdoc
  11. jpg如何免费转换成pdf
  12. SQL盲注中的部分常用函数
  13. 查找Linux系统中某个软件是否安装/存在
  14. androidstudio上传自己的lib到Jcenter
  15. mac/windows下查看端口号占用情况以及杀死端口进程
  16. 裸辞后,在家全职接单一个月的感触
  17. ibdata1是什么?
  18. vue项目--资产管理系统
  19. XML文件简介和解析
  20. 《超人诞生-人类增强的新技术》

热门文章

  1. TensorFlow Input
  2. git 应用 rebase
  3. CentOS7没有ftp命令的解决方法
  4. 问题 | kali系统隐藏sshd的banner信息
  5. c语言输出教学日历表 节假日突出,[蓝桥杯][算法提高VIP]任意年月日历输出 (C语言代码)...
  6. 图片配置文件设置 索尼a7s2_倒计时开课两天~索尼微单相机专题课程
  7. 数据传输服务 DTS > 数据订阅 > 数据订阅(新版) > 创建RDS MySQL数据订阅通道(新版)
  8. 深圳观澜机房(云计算数据中心)
  9. Java基础学习总结(84)——Java面向对象六大原则和设计模式
  10. 敏捷开发系列学习总结(4)—Git管理工具sourcetree的安装