题意
给一个面积area(≥1e8),要求找一个长为L,宽为W的矩阵,使满足:
- W⋅L=area
- L≥W
- L−W最小
思路
要是L和W尽可能接近一定是area−−−−√了。所以我们从0到
时间复杂度O(n√)
代码
class Solution {
public:
vector<int> constructRectangle(int area) {
int L = 1, W = 1;
for (int i = 1; i * i <= area; i++) {
if (area % i == 0) W = i;
}
L = area / W;
vector<int> ans;
ans.push_back(L);
ans.push_back(W);
return ans;
}
};

针对给定的大面积值,本文介绍了一种算法来寻找最接近正方形的矩形布局,其长和宽能够整除该面积值,从而使长宽差最小。通过枚举法,在时间复杂度为O(sqrt(n))的情况下解决了此问题。
385

被折叠的 条评论
为什么被折叠?



