Leetcode 492

来源:互联网 发布:app软件代理加盟 编辑:程序博客网 时间:2024/06/18 06:03

题意

给一个面积area(1e8),要求找一个长为L,宽为W的矩阵,使满足:

  1. WL=area
  2. LW
  3. LW最小

思路

要是L和W尽可能接近一定是area了。所以我们从0area枚举宽W,找到能满足整除且最大的那个W即可。

时间复杂度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;    }};
0 0