给你一个数组 rectangles ,其中 rectangles[i] = [li, wi] 表示第 i 个矩形的长度为 li 、宽度为 wi 。 如果存在 k 同时满足 k <= li 和 k <= wi ,就可以将第 i 个矩形切成边长为 k 的正方形。例如,矩形 [4,6] 可以切成边长最大为 4 的正方形。 设 maxLen 为可以从矩形数组 rectangles 切分得到的 最大正方形 的边长。 请你统计有多少个矩形能够切出边长为 maxLen 的正方形,并返回矩形 数目 。该题目的c++完整可运行代码
时间: 2024-02-20 09:02:21 浏览: 139
nested-rectangles-js:在Javascript中绘制n个具有不同颜色(数组)的嵌套矩形
好的,以下是该题目的C++完整可运行代码:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int countGoodRectangles(vector<vector<int>>& rectangles) {
int maxLen = 0, count = 0;
for (vector<int>& rectangle : rectangles) {
int len = min(rectangle[0], rectangle[1]);
if (len > maxLen) {
maxLen = len;
count = 1;
} else if (len == maxLen) {
count++;
}
}
return count;
}
int main() {
vector<vector<int>> rectangles = {{5,8},{3,9},{5,12},{16,5}};
int count = countGoodRectangles(rectangles);
cout << "Number of rectangles that can be cut into squares with maximum length: " << count << endl;
return 0;
}
```
输入为一个二维向量 `rectangles`,其中每个元素表示一个矩形的长度和宽度。函数 `countGoodRectangles` 返回可以切成最大正方形的矩形数目。主函数中给出了一个示例输入,输出结果为 3,表示有3个矩形可以切成边长为5的正方形。
阅读全文