0367. 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.

Follow up: Do not use any built-in library function such as sqrt.

Example 1:

**Input:** num = 16
**Output:** true

Example 2:

**Input:** num = 14
**Output:** false

Constraints:

  • 1 <= num <= 2^31 - 1

ac1: Newton method

r = (r + x / r) / 2

class Solution {
    public boolean isPerfectSquare(int num) {
        long r = num;
        while (r * r > num) {
            r = (r + num / r) / 2;
        }
        return r * r == num;
    }
}

Last updated