题目地址:https://leetcode.com/problems/construct-the-rectangle/#/description
简单理解:
input: area 表示矩形的面积
output: [L W],矩形的长和宽,其满足以下条件:
1. L >= W
2. L 和 W差的绝对值尽可能小
我的解法:
1. 使W从1增加到sqrt(area),在这个过程中计算L以及他们之间差的绝对值.然后和上一次循环的差对比,最终得到最小差对应的L和W。代码如下:
class Solution {
public:
vector<int> constructRectangle(int area) {
int maxIn = area;
int L=0,W=0;
for(int i = 1;i<=sqrt(area);i++){
if(double(area*1.0/i) -area/i > 0){}
else{
if(abs(i - area/i)<maxIn){
W = i;
L = area/i;
maxIn = abs(i - area/i);
}
}
}
return vector<int>{L,W};
}
};