暴力版(超时):
class Solution {
public:
vector<int> countRectangles(vector<vector<int>>& rectangles, vector<vector<int>>& points) {
vector<int> ans(points.size());
for(int i = 0; i < points.size(); i++){
int x = points[i][0];
int y = points[i][1];
for(auto rectangle : rectangles){
int x0 = rectangle[0];
int y0 = rectangle[1];
if(x <= x0 && y <= y0){
ans[i]++;
}
}
}
}
};
参考优化版:
思路:
先将一个维度的坐标排序,这里以纵坐标为例,在进行比较时,将纵坐标大于等于的,坐标的横坐标放入一个辅助队列中,每次辅助队列有新的坐标加入,都需要进行重排序,在这样的情况下,比较横坐标,满足的即为结果。
函数&#