-
Notifications
You must be signed in to change notification settings - Fork 819
/
RectangleOverlap.java
36 lines (34 loc) · 1.28 KB
/
RectangleOverlap.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package math;
/**
* Created by gouthamvidyapradhan on 30/11/2019 A rectangle is represented as a list [x1, y1, x2,
* y2], where (x1, y1) are the coordinates of its bottom-left corner, and (x2, y2) are the
* coordinates of its top-right corner.
*
* <p>Two rectangles overlap if the area of their intersection is positive. To be clear, two
* rectangles that only touch at the corner or edges do not overlap.
*
* <p>Given two (axis-aligned) rectangles, return whether they overlap.
*
* <p>Example 1:
*
* <p>Input: rec1 = [0,0,2,2], rec2 = [1,1,3,3] Output: true Example 2:
*
* <p>Input: rec1 = [0,0,1,1], rec2 = [1,0,2,1] Output: false Notes:
*
* <p>Both rectangles rec1 and rec2 are lists of 4 integers. All coordinates in rectangles will be
* between -10^9 and 10^9.
*/
public class RectangleOverlap {
public static void main(String[] args) {
int[] A = {0, 0, 2, 2};
int[] B = {1, 1, 3, 3};
System.out.println(new RectangleOverlap().isRectangleOverlap(A, B));
}
public boolean isRectangleOverlap(int[] rec1, int[] rec2) {
boolean x =
((rec1[0] >= rec2[0] && rec1[0] < rec2[2]) || (rec2[0] >= rec1[0] && rec2[0] < rec1[2]));
boolean y =
((rec1[1] >= rec2[1] && rec1[1] < rec2[3]) || (rec2[1] >= rec1[1] && rec2[1] < rec1[3]));
return x && y;
}
}