367. Valid Perfect Square 有效的完全平方数

链接

https://leetcode-cn.com/problems/valid-perfect-square/description/

要求

给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。

说明:不要使用任何内置的库函数,如 sqrt。

输入:16
输出:True

输入:14
输出:False

思路

设定start和end,用random函数从(start, end)中取一个数
如果这个数的平方小于num则赋值给start
如果这个数的平方大于num则赋值给end

代码

执行用时:48 ms

import random

class Solution:
    def isPerfectSquare(self, num):
        start =  0
        end = num

        while end - start > 1:
            random_num = random.randint(start, end)
            if random_num ** 2 == num:
                return True
            elif random_num ** 2 > num:
                end = random_num
            else:
                start = random_num
        else:
            if num < 2:
                return True
            else:
                return False

你可能感兴趣的:(367. Valid Perfect Square 有效的完全平方数)