博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]Rectangle Area
阅读量:2236 次
发布时间:2019-05-09

本文共 822 字,大约阅读时间需要 2 分钟。

解题思路:
1,最主要是找到 交集的面积
2,把2维的问题拆分成2个1维的问题
3,对于直线上的问题,求线段AB和线段CD的交集的长度,存在四种情况
     a,C在AB上,D在AB右边;
     b,CD在AB里面
     c,D在AB上,而C在AB左边;
     d,AB在CD里面;

     写一个方法做上述判断,可以很快求出两个矩形交集的height和width 

// ACclass Solution {public:    int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {        int AreaA = (C-A) * (D-B);        int AreaB = (G-E) * (H-F);        int intersectionWidth = getIntersection(A, C, E, G);        int intersectionHeight = getIntersection(B, D, F, H);        return AreaA + AreaB - intersectionWidth * intersectionHeight;    }    int getIntersection(int A, int B, int C, int D){        int ret = 0;        if (C >= A && C <= B){            ret = min(B-C, D-C);        }else if (D >= A && D <= B){            ret = D - A;        }else if (C < A && D > B){            ret = B - A;        }        return ret;    }};

转载地址:http://kjpbb.baihongyu.com/

你可能感兴趣的文章
【MyBatis学习02】走进MyBatis的世界
查看>>
【MyBatis学习03】原始dao开发方法及其弊端
查看>>
【MyBatis学习04】mapper代理方法开发dao
查看>>
【MyBatis学习05】SqlMapConfig.xml文件中的配置总结
查看>>
【MyBatis学习06】输入映射和输出映射
查看>>
【MyBatis学习07】动态sql
查看>>
【MyBatis学习08】高级映射之一对一查询
查看>>
【MyBatis学习09】高级映射之一对多查询
查看>>
【MyBatis学习10】高级映射之多对多查询
查看>>
【MyBatis学习11】MyBatis中的延迟加载
查看>>
【MyBatis学习12】MyBatis中的一级缓存
查看>>
【MyBatis学习13】MyBatis中的二级缓存
查看>>
【MyBatis学习14】MyBatis和Spring整合
查看>>
【MyBatis学习15】MyBatis的逆向工程生成代码
查看>>
Java 中 final、finally 和 finalize 使用总结
查看>>
volatile关键字解析
查看>>
单例模式的八种写法比较
查看>>
比较常见的数据库SQL面试题以及答案
查看>>
MySQL与Oracle的区别
查看>>
关于Oracle数据库优化的几点总结
查看>>