本文共 499 字,大约阅读时间需要 1 分钟。
给定两个矩形的各自左下和右上坐标,判断它们是否存在重合部分。以下代码可以有效地解决这个问题:
public class Solution { public boolean isRectangleOverlap(int[] rec1, int[] rec2) { int left = Math.max(rec1[0], rec2[0]); int right = Math.min(rec1[2], rec2[2]); int low = Math.max(rec1[1], rec2[1]); int up = Math.min(rec1[3], rec2[3]); return !(left >= right || low >= up); }} 该方法通过计算两个矩形的最小左边界和最大右边界,以及最小下边界和最大上边界,来判断矩形是否有重叠部分。具体来说,计算两矩形的投影区间,如果投影区间存在重叠,则说明两个矩形在空间中也存在重叠部分。该算法的时间复杂度为 O(1),因为它只涉及简单的算术运算和比较操作。
转载地址:http://ozcs.baihongyu.com/