✏基础刷题之(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;
}
转载链接:https://leetcode.cn/
leetCode 
![[爱了]](/js/img/d1.gif)
![[尴尬]](/js/img/d16.gif)