您的位置:首页 > 其它

求两个长方形面积

2015-09-03 19:46 232 查看
注意点:虽然左边点都在int范围内,但是两个int相加的结果不一定还在int范围内

public class Solution {

public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {

int leftWidth=C-A;

int leftHeight=D-B;

int rightWidth=G-E;

int rightHeight=H-F;

double overlapWidth=0,overlapHeight=0;

//如果有重叠的部分

if( (double)Math.max(G,C)-Math.min(E,A)<(double)leftWidth+rightWidth&&(double)Math.max(H, D)-Math.min(F, B)<(double)leftHeight +rightHeight){

overlapWidth=Math.abs(Math.min(G, C)-Math.max(E, A));

overlapHeight=Math.abs(Math.min(D, H)-Math.max(B, F));

}

return leftWidth*leftHeight+rightWidth*rightHeight-(int)overlapWidth*(int)overlapHeight;

}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: