leetcode with python:367. Valid Perfect Square

题目:

Given a positive integer num, write a function which returns True if num is a perfect square else False.

Follow up: Do not use any built-in library function such as sqrt.

给定一数,判断它是否是完全平方数,过程不能使用开平方根的内建函数

这题还蛮像69.的
透过二分搜去找平方根

class Solution:    def isPerfectSquare(self, num: int) -> bool:        l=1        r=num        while l+1!=r:            mid=(l+r)//2            if mid*mid==num:                return True            if mid*mid>num:                r=mid            if mid*mid<num:                l=mid        return False

在1~num的範围进行二分搜
设下限l=1跟上限r=num,mid定义为(1+r)//2
mid平方大于x,r降低到mid
mid平方小于x,l提高到mid
一旦mid平方等于x就回传True
直到l和r相邻,若mid平方都不等于num
则num的平方根不为整数,回传False
最后执行时间28ms(faster than 96.71%)

那我们下题见


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章