leetcode 367. 有效的完全平方数(Valid Perfect Square)

题目描述:

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

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

示例 1:

    输入:16
    输出:True

示例 2:

    输入:14
    输出:False

解法:

class Solution {
public:
    bool isPerfectSquare(int num) {
        if(num < 0){
            return false;
        }else{
            long long l = 0, r = num;
            long long mid = 0;
            long long val = 0;
            while(l <= r){
                mid = l + (r-l)/2;
                val = mid*mid;
                if(val == num){
                    return true;
                }else if(val > num){
                    r = mid - 1;
                }else{
                    l = mid + 1;
                }
            }
            return false;
        }
    }
};

猜你喜欢

转载自www.cnblogs.com/zhanzq/p/10575405.html