Leetcode刷题Python367. 有效的完全平方数
Posted Better Bench
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode刷题Python367. 有效的完全平方数相关的知识,希望对你有一定的参考价值。
1 题目
给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。
进阶:不要 使用任何内置的库函数,如 sqrt 。
示例 1:
输入:num = 16
输出:true
2 解析
(1)方法一
利用
(
n
+
1
)
2
−
n
2
=
2
n
+
1
(n+1)^2 - n^2 = 2n+1
(n+1)2−n2=2n+1,距离4 = 1+3,9 = 1+3+5,16 = 1+3+5+7,反过来,判断是一个数是不是平方数,逐个减去奇数,如果最后等于0,就是平方数
(2)方法二
利用暴力求解,二分的思想去减少暴力求解的次数。
3 Python实现
(1)方法一
class Solution:
def isPerfectSquare(self, num: int) -> bool:
i = 1
while num>0:
num -=i
i +=2
if num==0:
return True
else:
return False
(2)方法二
left ,right = 0,num
index = 0
while left <=right:
mid = (left+right)//2
if mid*mid<=num:
index = mid
left = mid+1
else:
right = mid-1
if index*index ==num:
return True
else:
return False
以上是关于Leetcode刷题Python367. 有效的完全平方数的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode练习(Python):第367题:有效的完全平方数:给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。 说明:不要使用任何
Leetcode练习(Python):第367题:有效的完全平方数:给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。 说明:不要使用任何
LeetCode 367 有效的完全平方数[暴力 二分法] HERODING的LeetCode之路
⭐算法入门⭐《二分枚举》简单06 —— LeetCode 367. 有效的完全平方数