367.md

December 1, 2019 · View on GitHub

:pencil2:基础刷题之(367. Valid Perfect Square)


. 2019-11-12 星期二 开始吧 库里的深夜食堂

:pencil2:描述

给定一个整型数值,写一个函数,如果这个数是一个完美的平方数就返回true,否则返回false。


:pencil2:题目实例


:pencil2:题目分析

二分就可以解题,这道题用正常版的二分就行了,二分找中位数,两个分支,选择了左中位数,那么左中位数的分支一定要排除掉中位值(否则死循环),右分支就不需要排除,最后必然存在left==right ,在进一步判断即可。

:pencil2:最终实现代码

    /**
     * @param Integer $num
     * @return Boolean
     */
    function isPerfectSquare($num)
{
        $left = 0;
        $right = $num;
        while ($left < $right) {
            $middle = ($left + $right) >> 1;
            if ($middle * $middle < $num) {
                $left = $middle + 1;
            } else {
                $right = $middle;
            }

        }
        return $left * $left == $num ? true : false;
    }


联系