Skip to content

Latest commit

 

History

History
51 lines (39 loc) · 1.42 KB

367.md

File metadata and controls

51 lines (39 loc) · 1.42 KB

✏️基础刷题之(367. Valid Perfect Square)


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

✏️描述

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


✏️题目实例


✏️题目分析

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

✏️最终实现代码

    /**
     * @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;
    }

联系