s4553711
5/12/2017 - 3:33 PM

367.cpp

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