3月打卡活动第18天 LeetCode第836题:矩形重叠(简单)
- 题目:矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。给出两个矩形,判断它们是否重叠并返回结果。
- 解题思路:走了很多弯路,开始的时候把情况分的太细了。主要想好一定不重叠的横坐标情况,其他情况的判断标准相同。
class Solution {
public boolean isRectangleOverlap(int[] rec1, int[] rec2) {
if(rec1[2]<=rec2[0] || rec1[0]>=rec2[2]){
return false;
}else{
if(rec1[3]>rec2[1] && rec1[1]<rec2[3]){
return true;
}else{
return false;
}
}
}
}
class Solution {
public boolean isRectangleOverlap(int[] rec1, int[] rec2) {
return !(rec1[2] <= rec2[0] ||
rec1[3] <= rec2[1] ||
rec1[0] >= rec2[2] ||
rec1[1] >= rec2[3]);
}
}
作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/rectangle-overlap/solution/ju-xing-zhong-die-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
- 题解做法2:投影的做法,判断重叠矩形的横纵坐标是否符合左<右,下<上
class Solution {
public boolean isRectangleOverlap(int[] rec1, int[] rec2) {
return (Math.min(rec1[2], rec2[2]) > Math.max(rec1[0], rec2[0]) &&
Math.min(rec1[3], rec2[3]) > Math.max(rec1[1], rec2[1]));
}
}
作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/rectangle-overlap/solution/ju-xing-zhong-die-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。