二分查找May-9th “Valid Perfect Square (Python3)”

Posted 迪乐阅读

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找May-9th “Valid Perfect Square (Python3)”相关的知识,希望对你有一定的参考价值。

——


 五月,总结模板的日子.

Day 9  ——   Valid Perfect Square


有效完全平方数


问题描述

Given a positive integer num, write a function which returns True if num is a perfect square else False.
Note: Do not use any built-in library function such as  sqrt .
Example 1:
   
     
     
   
Input: 16
Output: true
Example 2:
   
     
     
   
Input: 14
Output: false


解题思路  


二分查找
二分查找的下界为  0 ,上界可以粗略地设定为 
class Solution: def isPerfectSquare(self, num: int) -> bool:  lo = 1 hi = num  while num != 0 and lo <= hi: mid = (lo + hi) // 2 if mid ** 2 == num: return True elif mid ** 2 > num: hi = mid - 1 else: lo = mid + 1  return False
  • 时间复杂度:O(logN)。

  • 空间复杂度:O(1)



以上是关于二分查找May-9th “Valid Perfect Square (Python3)”的主要内容,如果未能解决你的问题,请参考以下文章

Task 04:数组二分查找

异序二分查找 二分查找方程根 二分查找重复元素最后一个

每周算法小知识之二分查找

查找算法之“二分查找”

java 二分查找法

hiho36 二分·二分查找二分查找