给你一个二维数组 nums ,其中 nums[i]=[li,wi] 表示第 i 个矩形的长度为 li 、宽度为 wi 。 如果存在 k 同时满足 k≤li 和 k≤wi ,就可以将第 i 个矩形切成边长为 k 的正方形。例如,矩形 [5,7] 可以切成边长最大为 5 的正方形。 设 maxLen 为可以从矩形数组 nums 切分得到的最大正方形的边长。 请你计算有多少个矩形能够切出边长为 maxLen 的正方形,并返回矩形数目 。 输入输出格式 输入格式 一行二维整型数组。 输出格式 一行整数。 输入输出样例 输入 [[2,3],[3,7],[4,3],[3,7]] 输出 3 用C++输出代码
时间: 2024-02-13 18:04:32 浏览: 21
请注意,您的问题与您之前的问题重复了。我相信您可以使用之前提供的C++代码来解决这个问题。以下是之前提供的C++代码,您可以参考一下:
```c++
#include<iostream>
#include<vector>
using namespace std;
int main(){
vector<vector<int> > nums; // 二维数组
int n = 4; // 矩形数量
// 输入矩形长度和宽度
for(int i = 0; i < n; i++){
vector<int> rect(2);
cin >> rect[0] >> rect[1];
nums.push_back(rect);
}
int maxLen = min(nums[0][0], nums[0][1]); // 初始化最大边长
// 遍历数组找到最小边长
for(int i = 1; i < n; i++){
maxLen = min(maxLen, min(nums[i][0], nums[i][1]));
}
int count = 0; // 记录能够切分成 maxLen 边长正方形的矩形数量
// 从 maxLen 到 1 逐个判断是否可以切分成正方形
for(int len = maxLen; len >= 1; len--){
bool flag = true; // 标记是否能够切分成正方形
for(int i = 0; i < n; i++){
if(nums[i][0] < len || nums[i][1] < len){ // 不能切分成正方形
flag = false;
break;
}
}
if(flag){ // 能够切分成正方形
count++;
}
}
cout << count << endl; // 输出结果
return 0;
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)