LeetCode 836. Rectangle Overlap(Java Edition; Easy)



Leetcode 836 Rectangle Overlap Java Edition



私のブログへようこそ

LeetCode 836. Rectangle Overlap(Java Edition Easy)

タイトル説明

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. 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. Given two (axis-aligned) rectangles, return whether they overlap. Example 1: Input: rec1 = [0,0,2,2], rec2 = [1,1,3,3] Output: true Example 2: Input: rec1 = [0,0,1,1], rec2 = [1,0,2,1] Output: false Notes: Both rectangles rec1 and rec2 are lists of 4 integers. All coordinates in rectangles will be between -10^9 and 10^9.

初めてコアを行う:1)交差しない状況を見つけ、反対に交差したくない状況を満たします。重複はありません。

class Solution { public boolean isRectangleOverlap(int[] rec1, int[] rec2) return !(rec1[2]<=rec2[0] }

私は初めて逃げ出し、重なり合う長方形の面積を計算し、最初に重なり合う長方形の4つの境界を見つけ、次に4つの境界が有効かどうかを判断し、次に面積を計算しました長方形この問題は、長方形の面積を計算する必要はありません...

class Solution { public boolean isRectangleOverlap(int[] rec1, int[] rec2) { //Left margin long x1 = Math.max(rec1[0], rec2[0]) //Right border long x2 = Math.min(rec1[2], rec2[2]) //Lower boundary long y1 = Math.max(rec1[1], rec2[1]) //Upper boundary long y2 = Math.min(rec1[3], rec2[3]) //area long res = Math.max(0, x2-x1) * Math.max(0, y2-y1) return res>0 } }