在Python中找出能形成最大正方形的矩形数
假设我们有一个叫 rect 的数组,其中 rect[i] 有两个元素 [len_i, wid_i],其中 len_i 和 wid_i 分别表示第 i 个矩形的长度和宽度。现在,如果 k <= lenn_i 且 k <= wid_i,则我们可以裁剪第 i 个矩形,形成一个边长为 k 的正方形。例如,如果我们有一个矩形 [4,6],那么我们可以裁剪它以得到一个最多为 4 个单位的边长的正方形。现在考虑一个称为 maxLen 的参数,它是我们可以从任何给定的矩形中获得的最大正方形的边长。我们必须找出我们可以用最大边长 maxLen 制造正方形的矩形的数量。
因此,如果输入为 rect = [[6,9],[4,10],[6,13],[17,6]],则输出将为 3,因为我们可以得到边长为 [6, 4, 6, 6] 的最大正方形,因此有三个矩形是最大的。
要解决此问题,我们将按照以下步骤进行 –
- m:一个新列表
-
对于 rect 中的每个 r,执行以下操作 –
- 将 r 的最小值插入到 m 的末尾
- 统计 m 中出现的最大值并返回
更多Python相关文章,请阅读:Python 教程
示例(Python)
请查看以下实现以更好地理解 –
def solve(rect):
m = []
for r in rect:
m.append(min(r))
return m.count(max(m))
rect = [[6,9],[4,10],[6,13],[17,6]]
print(solve(rect))
输入
[[6,9],[4,10],[6,13],[17,6]]
输出
3