LeetCode "Valid Perfect Square"

Typical binary search.. but take care of data overflow if you are using C++

class Solution {
public:
    bool isPerfectSquare(int num) {
        if(num < 0) return false;
        if(num < 2) return true;
        
        long long i = 1, j = num - 1;
        while(i <= j)
        {
            long long mid = (i + j) / 2;
            long long r = mid * mid;
            
            if(r == num) return true;
            if(r < num) i = mid + 1;
            else j = mid - 1;
        }
        return false;
    }
};
原文地址:https://www.cnblogs.com/tonix/p/5619639.html