367. Valid Perfect Square

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

你可能感兴趣的:(367. Valid Perfect Square)