leetcode和算法----日更

leetcode 367 有效的完全平方数

2020-02-07  本文已影响0人  Arsenal4ever

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

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

  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

上一篇下一篇

猜你喜欢

热点阅读