美文网首页leetcode和算法----日更
leetcode 367 有效的完全平方数

leetcode 367 有效的完全平方数

作者: Arsenal4ever | 来源:发表于2020-02-07 22:41 被阅读0次

    考查跟数学运算(非索引,下标)二分法!!!

    跟数学加减乘除有关的二分,注意:

    1. 取 mid 值要注意加一减一,不能直接取一半!!!
    2. 下限初值尽可能设为0,不要设置为1
    3. 循环条件写成 low <= high,不要丢掉等号!!
    class Solution(object):
        def isPerfectSquare(self, num):
            """
            :type num: int
            :rtype: bool
            """
            low, high = 0, num
            while low <= high:
                mid = (low + high) / 2
                if mid * mid == num:
                    return True
                elif mid * mid < num:
                    low = mid + 1
                else:
                    high = mid - 1
            return False
    

    在说明一下,python2 和 python3 中, / 是除法,// 是取整,但是 python2 有类型要求,整数与整数进行运算,最终都会得到整数,而 python3 则不会,它会得到精度更高的数。

    python2 中: 3 / 2 = 1

    python3 中:3 / 2 = 1.5

    相关文章

      网友评论

        本文标题:leetcode 367 有效的完全平方数

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