LeetCode-python 367.有效的完全平方数

题目链接
难度:简单       类型: 数学


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

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

示例1

输入:16
输出:True

示例2

输入:14
输出:False

解题思路


  1. 暴力解法
    从开始,判断是不是等于num,若不是,加1,直到不小于num,判断是否等于

  2. 二分查找
    不用一个一个递增,用二分法找

  3. 等差数列
    任意一个完全平方数都可以表示成一组奇数序列的和

    该方法复杂度和暴力法一样都是O(sqrt(n)),但计算量小一点

代码实现

class Solution(object):
    def isPerfectSquare(self, num):
        """
        :type num: int
        :rtype: bool
        """
        i = 1
        while num>0:
            num -= i
            i += 2
        return num == 0

本文链接:https://www.jianshu.com/p/c68deec9d951

你可能感兴趣的:(LeetCode-python 367.有效的完全平方数)