用 C++ 构建矩形


假设我们有一个特定的矩形网页区域,我们的工作是设计一个矩形网页,其长度 L 和宽度 W 满足以下要求:

  • 网页的面积必须等于给定的目标面积。

  • 宽度 W 不应大于长度 L,且 L >= W。

  • L 和 W 之间的差应尽可能小。

因此,如果输入是 4,则输出将是 [2,2],因为目标面积是 4,并且构建它的所有可能方式是 [1,4]、[2,2]、[4,1]。这里根据要求,[1,4] 违法,根据要求 3,与 [2,2] 相比 [4,1] 不合适。因此长度 L 为 2,宽度 W 为 2。

为解决这个问题,我们将遵循以下步骤:

  • 对于初始化 i:= 平方根(面积),当 i > 0 时,更新(将 i 减 1),执行:

    • 如果面积模 i 相同,则:

      • 定义一个数组 v,插入 {面积/i,i}

      • 返回 v

  • 返回 {-1,-1}

示例

我们来了解以下实现以更好地了解 −

 实时演示

#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<auto> v){
   cout << "[";
   for(int i = 0; i<v.size(); i++){
      cout << v[i] << ", ";
   }
   cout << "]"<<endl;
}
class Solution {
public:
   vector<int> constructRectangle(int area) {
      for (int i = sqrt(area); i > 0; i--) {
         if (area % i == 0) {
            vector<int> v{ area / i, i };
            return v;
         }
      }
      return { -1, -1 };
   }
};
main(){
   Solution ob;
   print_vector(ob.constructRectangle(4));
}

输入

4

输出

[2, 2, ]

更新于: 10-Jun-2020

281 次浏览

开启你的 职业生涯

完成课程以获得认证

开始学习
广告