先考虑不进阶 结果这个只过了5/7的测试用例 放弃 顺序超时 直接二分
class Solution: def isPerfectSquare(self, num: int) -> bool: return (num ** 0.5) ** 2 == num
举一反三
和sqrt差不多
思路就是让右坐标作为num的完全平方数 如果num符合题目要求的话,则找到的right+1 的平方 应该与num相等
借助了sqrt寻找一个数的完全平方数的思路 又加了最后一步罢了
class Solution: def isPerfectSquare(self, num: int) -> bool: left, right = 0, num - 1 while left <= right: middle = (left + right) // 2 if middle ** 2 < num: left = middle +1 else: right = middle - 1 return (right+1)**2 == num
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)