用jsp做网站的代码,句容网站建设制作,潍坊市奎文建设局网站,来年做啥网站能致富1. 题目
我们有 N 个与坐标轴对齐的矩形, 其中 N 0, 判断它们是否能精确地覆盖一个矩形区域。
每个矩形用左下角的点和右上角的点的坐标来表示。例如#xff0c; 一个单位正方形可以表示为 [1,1,2,2]。 ( 左下角的点的坐标为 (1, 1) 以及右上角的点的坐标为 (2, 2) )。…1. 题目
我们有 N 个与坐标轴对齐的矩形, 其中 N 0, 判断它们是否能精确地覆盖一个矩形区域。
每个矩形用左下角的点和右上角的点的坐标来表示。例如 一个单位正方形可以表示为 [1,1,2,2]。 ( 左下角的点的坐标为 (1, 1) 以及右上角的点的坐标为 (2, 2) )。 示例 1:
rectangles [[1,1,3,3],[3,1,4,2],[3,2,4,4],[1,3,2,4],[2,3,3,4]
]
返回 true。5个矩形一起可以精确地覆盖一个矩形区域。示例 2:
rectangles [[1,1,2,3],[1,3,2,4],[3,1,4,2],[3,2,4,4]
]
返回 false。两个矩形之间有间隔无法覆盖成一个矩形。示例 3:
rectangles [[1,1,3,3],[3,1,4,2],[1,3,2,4],[3,2,4,4]
]
返回 false。图形顶端留有间隔无法覆盖成一个矩形。 示例 4:
rectangles [[1,1,3,3],[3,1,4,2],[1,3,2,4],[2,2,4,4]
]
返回 false。因为中间有相交区域虽然形成了矩形但不是精确覆盖。来源力扣LeetCode
链接https://leetcode-cn.com/problems/perfect-rectangle
著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。2. 解题
set 查找四个顶点在set中说明重叠删除不在set中加入set同时记录所有小矩形 面积之和 s还有xy的最大最小范围最后set中的顶点只能是四个角且面积 s (x_max - x_min)*(y_max - y_min)
class Solution {
public:bool isRectangleCover(vectorvectorint ret) {setpairint,int s;int x1 INT_MAX, y1 INT_MAX, x2 INT_MIN, y2 INT_MIN, area 0;for(int i 0; i ret.size(); i){x1 min(ret[i][0],x1);x2 max(ret[i][2],x2);y1 min(ret[i][1],y1);y2 max(ret[i][3],y2);area (ret[i][2]-ret[i][0])*(ret[i][3]-ret[i][1]);if(s.find({ret[i][0],ret[i][1]})s.end())s.insert({ret[i][0],ret[i][1]});elses.erase({ret[i][0],ret[i][1]});if(s.find({ret[i][2],ret[i][3]})s.end())s.insert({ret[i][2],ret[i][3]});elses.erase({ret[i][2],ret[i][3]});if(s.find({ret[i][0],ret[i][3]})s.end())s.insert({ret[i][0],ret[i][3]});elses.erase({ret[i][0],ret[i][3]});if(s.find({ret[i][2],ret[i][1]})s.end())s.insert({ret[i][2],ret[i][1]});elses.erase({ret[i][2],ret[i][1]});}if(s.size() !4 || !s.count({x1,y1}) || !s.count({x1,y2}) || !s.count({x2,y1}) || !s.count({x2,y2}))return false;return area (x2-x1)*(y2-y1);}
};304 ms 26 MB