Valid Perfect Square
https://leetcode.com/problems/valid-perfect-square/description/
Given a positive integer num, write a function which returns True if num is a perfect square else False.
Thoughts
和sqrt(x)同理. 只是这次无论是二分还是牛顿法得到的最终结果不是直接返回, 而是与自身相乘看是否与num相等.
Code
class Solution {
public boolean isPerfectSquare(int num) {
long r = num;
while (r * r > num) {
r = (r + num / r) / 2;
}
return r * r == num;
}
}
Analysis
时间复杂度未知.
Last updated
Was this helpful?