LeetCode — Construct the Rectangle

KaiChun Yang
Jun 9, 2022

題目連結:492. Construct the Rectangle
難度:easy

題目大意:
測資給予一個長方形面積,需計算出其差異最小的長寬。
(長減寬最小,長放前方,寬放後方)

解題過程:
【version 1】
1. 對 area 開根號,找出最接近平方根的數,開始找能整除的值
2. 由於是從接近平方根開始找,因此找到的第一個必為長寬差異最小的答案
【version 2】
1. 從 1 開始找能整除 area 的數,並以 vector 紀錄
2. 當遇到其他能整除 area 的數,比較其寬高差異,取較小者存入 vector

使用語言:C++

實作程式如下:

version 1

時間複雜度:O(N ^ 0.5),N = area
空間複雜度:O(1)

Runtime: 70 ms, faster than 20.67% of C++ online submissions for Construct the Rectangle.
Memory Usage: 6 MB, less than 92.50% of C++ online submissions for Construct the Rectangle.

version 2

時間複雜度:O(N^0.5)
空間複雜度:O(1)

Runtime: 0 ms, faster than 100.00% of C++ online submissions for Construct the Rectangle.
Memory Usage: 6.2 MB, less than 32.63% of C++ online submissions for Construct the Rectangle.

--

--