美文网首页
367. Valid Perfect Square

367. Valid Perfect Square

作者: namelessEcho | 来源:发表于2017-09-26 16:54 被阅读0次

Given a positive integer num, write a function which returns True if num is a perfect square else False.

和之前的开方的写法类似 都是二分查找 但是要注意这里 有舍入 num/mid可能会出现满足条件但不是平方数的情况,需要在里面再进行一次判断。

class Solution {
    public boolean isPerfectSquare(int num) {
        int hi = num ;
        int lo = 1;
        while(lo<=hi)
        {
            int mid = lo+(hi-lo)/2;
            if(mid==num/mid)
            {
                if(num%mid==0)
                    return true;
                return false;
            }
            else if (mid<num/mid)
                lo=mid+1;
            else
                hi=mid-1;
        }
        return false;
    }
}

相关文章

网友评论

      本文标题:367. Valid Perfect Square

      本文链接:https://www.haomeiwen.com/subject/mlteextx.html