伍六七带你学算法 入门篇-矩形重叠
生活随笔
收集整理的這篇文章主要介紹了
伍六七带你学算法 入门篇-矩形重叠
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
力扣解題-----每日一題-836
矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 為左下角的坐標,(x2, y2) 是右上角的坐標。
如果相交的面積為正,則稱兩矩形重疊。需要明確的是,只在角或邊接觸的兩個矩形不構成重疊。
給出兩個矩形,判斷它們是否重疊并返回結果。
示例 1:
輸入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]
輸出:true
示例 2:
輸入:rec1 = [0,0,1,1], rec2 = [1,0,2,1]
輸出:false
提示:
兩個矩形 rec1 和 rec2 都以含有四個整數的列表的形式給出。
矩形中的所有坐標都處于 -10^9 和 10^9 之間。
x 軸默認指向右,y 軸默認指向上。
你可以僅考慮矩形是正放的情況。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/rectangle-overlap
public class _836矩形重疊 {/*** 解題思路:* 首先,你想要找兩個矩形,兩個矩形有包含的條件非常多,要判斷的條件也是非常復雜* 然后你想,如果反著想:找到不在該區間的會不會簡單些呢?* 1、第一個矩形的右節點在第二個矩形左節點的左邊* 2、第一個矩形的右節點在第二個矩形左節點的下面* 3、同理,把兩個矩形的位置互換一下,這樣 他們就永遠不會相交* 4、取反,即是我們所要判斷的結果* @param rec1* @param rec2* @return*/public static boolean isRectangleOverlap(int[] rec1, int[] rec2) {if(rec1.length!=4||rec2.length!=4){return false;}return !(rec1[2] <= rec2[0] || rec2[2] <= rec1[0] || rec1[3] <= rec2[1] || rec2[3] <= rec1[1]);}public static void main(String[] args) {int [] rec1 = {11,12,13,13};//{7,8,13,15};int [] rec2 = {17,1,17,19}; //{10,8,12,20};System.out.println(isRectangleOverlap(rec1,rec2));}
}
總結
以上是生活随笔為你收集整理的伍六七带你学算法 入门篇-矩形重叠的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux/docker个人服务器项目中
- 下一篇: 伍六七带你学算法 入门篇-拼写单词