LeetCode367Python—— 有效的完全平方数
有效的完全平方数
概述:给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如 sqrt 。
-
输入:num = 16
-
输出:true
-
-
输入:num = 14
-
输出:false
方法一:判断整数
思路:直接对 num 取根号,若其值为整数,即返回。
-
# 判断整数
-
# 直接对num取根号,若其值为整数,即返回。
-
class Solution:
-
def isPerfectSquare(self, num: int) -> bool:
-
return num ** 0.5 % 1 == 0
方法二:取余
思路:假设该数是一个完全平方数,那么对其根号取余得到 0 时,即返回。
-
# 取余
-
# 假设该数是一个完全平方数,那么对其根号取余得到 0 时,即返回。
-
class Solution:
-
def isPerfectSquare(self, num: int) -> bool:
-
return num % (num ** 0.5) == 0
方法三:pow() 方法
思路:思路和上面基本一致,不同在于用 pow() 方法计算得到。
-
# pow() 方法
-
# 思路和上面基本一致,不同在于用 pow() 方法计算得到。
-
class Solution:
-
def isPerfectSquare(self, num: int) -> bool:
-
return float.is_integer(pow(num, 0.5))
方法四:暴力循环
思路:从 0 开始枚举,若其平方恰好等于 num 时,即返回。
-
# 暴力循环
-
# 从 0 开始枚举,若其平方恰好等于 num 时,即返回。
-
class Solution:
-
def isPerfectSquare(self, num: int) -> bool:
-
x = 0
-
square = 0
-
while square <= num:
-
if square == num:
-
return True
-
x = 1
-
square = x * x
-
return False
方法五:二分查找
思路:思路和上面基本一致,但是我们可以用二分查找来优化搜索范围。
-
# 二分查找
-
# 思路和上面基本一致,但是我们可以用二分查找来优化搜索范围。
-
class Solution:
-
def isPerfectSquare(self, num: int) -> bool:
-
left, right = 0, num
-
while left <= right:
-
mid = (left right) // 2
-
square = mid * mid
-
if square < num:
-
left = mid 1
-
elif square > num:
-
right = mid - 1
-
else:
-
return True
-
return False
方法六:牛顿迭代法
思路:借助泰勒级数向零点逼近,取得整数解即可。
-
# 牛顿迭代法
-
# 借助泰勒级数向零点逼近,取得整数解即可。
-
class Solution:
-
def isPerfectSquare(self, num: int) -> bool:
-
x_0 = num
-
while True:
-
x_1 = (x_0 num / x_0) / 2
-
if x_0 - x_1 < 1e-6:
-
break
-
x_0 = x_1
-
x_0 = int(x_0)
-
return x_0 * x_0 == num
总结
牛顿法属实勾起了我学习计算方法时候的痛苦回忆
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfjjfeg
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01