[
math
binary search
]
Leetcode 0367 Valid Perfect Square
Problem statement
https://leetcode.com/problems/valid-perfect-square/
Solution
Simple approach is to check for all numbers k
if k^2 = num
. Complexity is O(sqrt{n})
. Smarter approach is Binary Search with O(log n)
complexity.
Complexity
It is O(log n)
for time and O(1)
for space
Code
class Solution:
def isPerfectSquare(self, num):
beg, end = 1, num
while end - beg > 1:
mid = (beg + end)//2
if mid*mid > num:
end = mid
else:
beg = mid
return beg*beg == num