LeetcodeApr 02, 2025

367 Valid Perfect Square

Hazrat Ali

Leetcode

Given a positive integer num, return true if num is a perfect square or false otherwise.

perfect square is an integer that is the square of an integer. In other words, it is the product of some integer with itself.

You must not use any built-in library function, such as sqrt.

Example 1:

Input: num = 16
Output: true
Explanation: We return true because 4 * 4 = 16 and 4 is an integer.

Example 2:

Input: num = 14
Output: false
Explanation: We return false because 3.742 * 3.742 = 14 and 3.742 is not an integer.


* 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
 
 
Solution 
 
/**
 * @param {number} num
 * @return {boolean}
 */
const isPerfectSquare = num => {
  let lo = 0;
  let hi = num;

  while (lo <= hi) {
    const mid = (lo + hi) >>> 1;

    if (mid * mid === num) {
      return true;
    } else if (mid * mid < num) {
      lo = mid + 1;
    } else {
      hi = mid - 1;
    }
  }

  return false;
};



Comments