Tony's Log

Algorithms, Distributed System, Machine Learning

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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;
    }
};
posted on 2016-06-27 11:21  Tonix  阅读(185)  评论(0)    收藏  举报