Complete-Preparation

🎉 One-stop destination for all your technical interview Preparation 🎉

View the Project on GitHub

492. Construct the Rectangle 🌟

A web developer needs to know how to design a web page’s size. So, given a specific rectangular web page’s area, your job by now is to design a rectangular web page, whose length L and width W satisfy the following requirements:

  1. The area of the rectangular web page you designed must equal to the given target area.
  2. The width W should not be larger than the length L, which means L >= W.
  3. The difference between length L and width W should be as small as possible.

Return an array [L, W] where L and W are the length and width of the web page you designed in sequence.

Iterative Solution

Code

class Solution {
public:
    vector<int> constructRectangle(int area)
    {
        int k = sqrt(area);
        for (int i = k; i >= 1; i--) {
            if (area % i == 0) return { area / i, i };
        }
        return {};
    }
};

Recursive Solution

Code

class Solution {
    vector<int> constructRectangleRec(int area, int k)
    {
        if (area % k == 0) return { area / k, k };
        return constructRectangleRec(area, k - 1);
    }

public:
    vector<int> constructRectangle(int area)
    {
        int k = sqrt(area);
        return constructRectangleRec(area, k);
    }
};