describe

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:

  • The area of the rectangular web page you designed must equal to the given target area.
  • The width W should not be larger than the length L, which means L >= W.
  • 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.

Example 1:

Input: area = 4 Output: [2,2] Explanation: The target area is 4, and all The possible ways to construct it are [1,4], [2,2], [4,1]. But according to requirement 2, [1,4] is illegal; Requirement 3, [4,1] is not optimal compared to [2,2]. So the length L is 2, and the width W is 2.Copy the code

Example 2:

Input: area = 37
Output: [37,1]
Copy the code

Example 3:

Input: area = 122122
Output: [427,286]
Copy the code

Example 4:

Example 5:

Note:

1 <= area <= 107
Copy the code

parsing

Find two numbers that are divisible, the first being greater than the last, and the difference between them being the smallest. If the square root of the area is t, then the result is [t,t]. If it is not successful, subtract one from t to form n, and check whether n is divisible by area. If it is, return [int(area/n),n]. If not, continue the process of determining whether t minus one is divisible.

answer

class Solution(object): def constructRectangle(self, area): """ :type area: int :rtype: List[int] """ n = int(math.sqrt(area)) while area % n ! = 0: n -= 1 return [int(area/n),n]Copy the code

The results

Each node in the Python online submission list builds the Rectangle. Memory Usage: Submissions in Python online submissions for Construct the Rectangle.Copy the code

Original link: leetcode.com/problems/co…

Your support is my biggest motivation