有效的完全平方数

802 阅读1分钟

367. 有效的完全平方数

Difficulty: 简单

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

**说明:**不要使用任何内置的库函数,如  sqrt

示例 1:

输入:16
输出:True

示例 2:

输入:14
输出:False

Solution

Language: java

class Solution {
    //有效的完成平方数,也就是我们要找到一个x * x = num
    public boolean isPerfectSquare(int num) {
        if(num <= 1) return true;
        int left = 1;
        int right = num / 2;
        while(left <= right)
        {
            int mid = left + (right - left) / 2;
            if(mid == num / mid && num % mid == 0)
            {
                return true;
            }
            else if(mid > num / mid)
            {
                right = mid - 1;
            }
            else
            {
                left = mid + 1;
            }
        }
        return false;
    }
}