/*
* @lc app=leetcode.cn id=69 lang=c
*
* [69] x 的平方根
*
* https://leetcode-cn.com/problems/sqrtx/description/
*
* algorithms
* Easy (34.81%)
* Total Accepted: 25.4K
* Total Submissions: 73.1K
* Testcase Example: '4'
*
* 实现 int sqrt(int x) 函数。
*
* 计算并返回 x 的平方根,其中 x 是非负整数。
*
* 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
*
* 示例 1:
*
* 输入: 4
* 输出: 2
*
*
* 示例 2:
*
* 输入: 8
* 输出: 2
* 说明: 8 的平方根是 2.82842...,
* 由于返回类型是整数,小数部分将被舍去。
*
*
*/
int mySqrt(int x) {
long i = ;
if(x==){
return ;
}
for(i=;i<=x/;i++){
if(i*i==x){
return i;
}
else if(i*i<x&&(i+)*(i+)>x){
return i;
}
}
return ;
}

这里要注意取值范围,用long比较合适。思路也挺简单的,循环到目标值的一半即可,然后两个判断,要么相等,要么当前值平方小于目标值,当前值加1的平方大于目标值。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

python:

#
# @lc app=leetcode.cn id=69 lang=python3
#
# [69] x 的平方根
#
# https://leetcode-cn.com/problems/sqrtx/description/
#
# algorithms
# Easy (34.81%)
# Total Accepted: 25.4K
# Total Submissions: 73.1K
# Testcase Example: '4'
#
# 实现 int sqrt(int x) 函数。
#
# 计算并返回 x 的平方根,其中 x 是非负整数。
#
# 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
#
# 示例 1:
#
# 输入: 4
# 输出: 2
#
#
# 示例 2:
#
# 输入: 8
# 输出: 2
# 说明: 8 的平方根是 2.82842...,
# 由于返回类型是整数,小数部分将被舍去。
#
#
#
class Solution:
def mySqrt(self, x: int) -> int:
low = 0
mid = x // 2 # //代表整数除法
high = x
while low <= high: #注意判断条件
if mid * mid > x:
high = mid - 1
elif mid * mid < x:
low = mid + 1
else:
return mid
mid = (low + high) // 2
return mid #向下取整

python用的是二分法。

最新文章

  1. [LeetCode] First Bad Version 第一个坏版本
  2. IOS基础库
  3. 数据可视化(2)--Justgage
  4. CC2541连接BTool教程
  5. POJ 2826 An Easy Problem?!
  6. 前台添加jquery的引用
  7. 自定义 select 下拉菜单
  8. python udp编程实例
  9. JS中三目运算符和if else的区别分析与示例
  10. setTimeout异步加载
  11. 客户端用TortoiseSVN检出代码
  12. oracle学习笔记(三) DCL 数据控制语言与 DDL 数据定义语言
  13. 手把手编写PHP MVC框架实例教程
  14. PostgreSQL在Update时使用Substring函数截取字符串并且加上CASE WHEN THEN条件判断
  15. CF 317 A. Lengthening Sticks(容斥+组合数学)
  16. ESP WIFI
  17. Spark:几种给Dataset增加列的方式、Dataset删除列、Dataset替换null列
  18. mysql查询 根据年月日的查询
  19. SpringBoot配置属性之NOSQL
  20. HALCON之喷码OCR识别案例

热门文章

  1. flask factory
  2. nagios外部命令接口
  3. SQLServer存储过程 实例,很多语法可以以后参考
  4. Hadoop fs命令(转)
  5. 使用文档碎片(DocumentFragments)追加DOM元素
  6. 1.LVS理论基础
  7. Mrach 9 2017 Week 10 Thursday
  8. Opencv4android的Android Studio环境配置及项目实例下载
  9. Android(java)学习笔记29:泛型类的概述和使用
  10. (第四场)G Maximum Mode 【YY+暴力】