美文网首页
LeetCode-python 367.有效的完全平方数

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

作者: wzNote | 来源:发表于2019-10-09 15:54 被阅读0次

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


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

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

示例1

输入:16
输出:True

示例2

输入:14
输出:False

解题思路


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

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

  3. 等差数列
    任意一个完全平方数都可以表示成一组奇数序列的和
    1+3+5+\cdots + (2n-1)=n
    该方法复杂度和暴力法一样都是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.有效的完全平方数

      本文链接:https://www.haomeiwen.com/subject/rojgpctx.html