[LeetCode]391. Perfect Rectangle
来源:互联网 发布:网络中文教师 编辑:程序博客网 时间:2024/06/05 19:30
https://leetcode.com/problems/perfect-rectangle/#/description
给一组矩形,矩形由右下和左上两个点确定唯一,判断这些矩形组合而成是否还是矩形
true的条件有两个:1、每个矩形的size和为大矩形四个点计算的和;2、set中只有四个点,而且这四个点是x1/x2/y1/y2所确定的点
每个矩形四个点加到set中,遇到重复就移除。
public class Solution { public boolean isRectangleCover(int[][] rectangles) { HashSet<String> set = new HashSet(); int x1 = Integer.MAX_VALUE; int y1 = Integer.MAX_VALUE; int x2 = Integer.MIN_VALUE; int y2 = Integer.MIN_VALUE; int area = 0; for (int[] rec : rectangles) { x1 = Math.min(rec[0], x1); y1 = Math.min(rec[1], y1); x2 = Math.max(rec[2], x2); y2 = Math.max(rec[3], y2); area += (rec[2] - rec[0]) * (rec[3] - rec[1]); String s1 = rec[0] + " " + rec[3]; String s2 = rec[0] + " " + rec[1]; String s3 = rec[2] + " " + rec[1]; String s4 = rec[2] + " " + rec[3]; if (!set.add(s1)) { set.remove(s1); } if (!set.add(s2)) { set.remove(s2); } if (!set.add(s3)) { set.remove(s3); } if (!set.add(s4)) { set.remove(s4); } } if (!set.contains(x1 + " " + y1) || !set.contains(x2 + " " + y1) || !set.contains(x1 + " " + y2) || !set.contains(x2 + " " + y2) || set.size() != 4) { return false; } return area == (x2 - x1) * (y2 - y1); }}
0 0
- Leetcode 391. Perfect Rectangle
- 【LeetCode】391. Perfect Rectangle
- Leetcode 391. Perfect Rectangle
- [LeetCode]391. Perfect Rectangle
- LeetCode—391. Perfect Rectangle
- [leetcode] 391. Perfect Rectangle 解题报告
- [Leetcode] 391. Perfect Rectangle 解题报告
- [leetcode] 391. Perfect Rectangle 解题报告
- 391. Perfect Rectangle
- 391. Perfect Rectangle
- 391. Perfect Rectangle
- 391. Perfect Rectangle
- Leetcode 391. Perfect Rectangle 完美矩形 解题报告
- Perfect Rectangle
- leetcode 391. Perfect Rectangle 完美矩形的寻找 + 一个很笨的却很直接的方法
- LeetcodeOJ 391 :Perfect Rectangle
- leetcode 279: Perfect Squares
- [Leetcode]Perfect Squares
- Altium designer 中已知一个网络标号( Net Label),快速查找另一个( Net Label)方法
- iOS开发底层知识——Runtime详解
- 对spring web启动时IOC源码研究
- SQL Server如何固定执行计划
- jsp/html 中的路径
- [LeetCode]391. Perfect Rectangle
- c++第二次作业-9百鸡问题
- 网络编程-上传文本并给出反馈
- 第二个c++实验报告
- SQL Server 中COUNT(*) 与 COUNT(1)的区别
- PHP实现执行定时任务的几种思路详解
- poj 2096 Collecting Bugs (概率与期望DP)
- As3技术总结前言
- 更新Android studio一直Refreshing问题