367. 有效的完全平方数


367. 有效的完全平方数

给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。

进阶:不要 使用任何内置的库函数,如  sqrt 。

示例 1:

输入:num = 16
输出:true

示例 2:

输入:num = 14
输出:false

提示:

  • 1 <= num <= 2^31 - 1
 1 class Solution {
 2 public:
 3     bool isPerfectSquare(int num) {
 4         int left = 0;
 5         int right = num;
 6         while (left <= right) {
 7             int mid = left + (right - left) / 2;
 8             long square =static_cast<long>(mid) * mid;
 9             if (square == num) {
10                 return true;
11             }
12             if (square > num) {
13                 right = mid - 1;
14             } else {
15                 left = mid + 1;
16             }
17         }
18         return false;
19     }
20 };

相关