目录

力扣-数组-367-有效的完全平方数

力扣-数组-367 有效的完全平方数

思路和时间复杂度

  1. 思路:利用二分,确定区间是左闭右闭,然后根据大小进行二分
  2. 时间复杂度: https://latex.csdn.net/eq?O%28logn%29

代码

class Solution {
public:
    bool isPerfectSquare(int num) {
        bool flag = false;
        if(num == 0 || num == 1) return true;
        long long left = 0, right = num;
        // 左闭右闭
        while(left <= right){
            long long mid = left + (right - left) / 2;
            if(mid * mid == num){
                return true;
            }else if(mid * mid > num){
                right = mid-1;
            }else{
                left = mid+1;
            }
        }
        return flag;
    }
};