最后判断的地方
if (min2 < max2 || min1 < max1) {
return 0;
}
如果直接写成:
l <= 0 || w <= 0可能会越界滴!!!因为两个整数相减会越界啊!
public class Solution {
public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
int area1 = (C - A) * (D - B);
int area2 = (G - E) * (H - F);
return area1 + area2 - coveredArea(A, B, C, D, E, F, G, H);
}
private int coveredArea(int a, int b, int c, int d, int e, int f, int g, int h) {
// TODO Auto-generated method stub
int max1 = Math.max(a, e);
int min1 = Math.min(c, g);
int max2 = Math.max(b, f);
int min2 = Math.min(h, d);
int l = min2 - max2;
int w = min1 - max1;
if (min2 < max2 || min1 < max1) {
return 0;
}
return l * w;
}
}
本文介绍了一个计算两个矩形面积及其重叠部分的方法。通过定义两个矩形的坐标边界,我们实现了面积计算并处理了可能的重叠情况。
813

被折叠的 条评论
为什么被折叠?



