题意理解
给你一个数组 rectangles ,其中 rectangles[i] = [li, wi] 表示第 i 个矩形的长度为 li 、宽度为 wi 。
如果存在 k 同时满足 k <= li 和 k <= wi ,就可以将第 i 个矩形切成边长为 k 的正方形。例如,矩形 [4,6] 可以切成边长最大为 4 的正方形。
设 maxLen 为可以从矩形数组 rectangles 切分得到的 最大正方形 的边长。
返回可以切出边长为 maxLen 的正方形的矩形 数目 。
问题分析
问题不难,但是用到stl的 vector/map类型的处理方式,还有min函数。
其他
https://leetcode-cn.com/problems/number-of-rectangles-that-can-form-the-largest-square
链接
class Solution {
public:
int countGoodRectangles(vector<vector<int>>& rectangles) {
vector<int> maxEdges;
for(int i = 0; i < rectangles.size(); i++) {
int width = rectangles[i][0];
int height = rectangles[i][1];
maxEdges.push_back(min(width, height));
}
for(auto edge: maxEdges) {
cout << edge << endl;
}
cout << "werq" << endl;
unordered_map<int,int> edgeCount;
for(int i = 0; i < maxEdges.size(); i++) {
edgeCount[maxEdges[i]]++;
}
int maxEdge = INT_MIN;
int maxCount = 0;
for(auto item : edgeCount) {
int current = item.first;
int count = item.second;
cout << current << '\t' << count << endl;
if (current > maxEdge) {
maxEdge = current;
maxCount = count;
}
}
return maxCount;
}
};