用 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 次瀏覽

開啟你的 職業生涯

完成課程以獲得認證

開始學習
廣告