D111 492. Construct the Rectangle
题目链接
题目分析
给定矩形面积,求出宽高之差最小的边长。
思路
因为是求出面积,因此先用sqrt函数求开方,向下求整。
再递减,逐个尝试面积除以边长之后余数是否为0,即能否整除。
为什么从开方后的值开始?因为题目要求宽高之差要尽可能小。
最终代码
<?php
class Solution {
/**
* @param Integer $area
* @return Integer[]
*/
function constructRectangle($area) {
$mid = floor(sqrt($area));
for($i=$mid; $i>1; $i--){
if($area%$i == 0){
return [$area/$i, $i];
}
}
return [$area, 1];
}
}
若觉得本文章对你有用,欢迎用爱发电资助。