Rectangle Area

要点:基本思路就是先分开算再减去相交部分,这题的难点是如何检查是否相交和如何算出相交部分的面积。

  • 2d转化为1d:x轴和y轴是orthogonal的。可以分开考虑。这样检查不相交很简单,4个or条件。注意x/y轴只要一个不相交就完全没交集
  • 相交部分如何算?还是x/y轴分开,以x轴为例,intuition为相交部分还是左右边作为左右边计算面积。所以相交部分为左边最大和右边最小(同理,y轴为上边最小和下边最大)。其实检查部分也可以依据这个计算省2个条件

这题如果直接通过A/B/C/D记公式去搞明白几乎不可能。以上面的描述来记会容易些。

class Solution(object):def computeArea(self, A, B, C, D, E, F, G, H):""":type A: int:type B: int:type C: int:type D: int:type E: int:type F: int:type G: int:type H: int:rtype: int"""sumArea = (D-B)*(C-A)+(H-F)*(G-E)if (H<B or D<F) or (A>G or E>C):return sumAreareturn sumArea-(min(C,G)-max(A,E))*(min(H,D)-max(F,B))

转载于:https://www.cnblogs.com/absolute/p/5690351.html

边工作边刷题:70天一遍leetcode: day 67-1相关推荐

  1. 边工作边刷题:70天一遍leetcode: day 94-1

    Largest BST Subtree 要点: http://articles.leetcode.com/largest-binary-search-tree-bst-in 这题重点是理解题意,还有道 ...

  2. 边工作边刷题:70天一遍leetcode: day 11-2

    Gas Station 老题,这种circular的题一般都能转化成单向的.比如这题就是用sumDiff来判断是否有解,而start单向递增. class Solution(object):def c ...

  3. 边工作边刷题:70天一遍leetcode: day 92

    House Robber I/II/III 这题代表了单向线性dp的基本pattern: build local best value at each element and track the gl ...

  4. 边工作边刷题:70天一遍leetcode: day 98

    LRU Cache 这是一道leetcode的难题,这种题往往是算法结构很复杂,涉及一个或多个考点算法和数据结构的组合,同时又有很多corner cases要考虑.所以一定要找到合适memorize的 ...

  5. 边工作边刷题:70天一遍leetcode: day 97-2

    Design Hit Counter 要点:因为是second granularity,所以可以用以秒为单位的circular buffer方法.这题简单在只需要count过去300秒的,增加难度可以 ...

  6. 边工作边刷题:70天一遍leetcode: day 73

    Read N Characters Given Read4 I/II 要点:这题的要点就是搞清楚几个变量的内在逻辑:只有buffer是整4 bytes的.而client要读的bytes(需求)和实际上 ...

  7. 边工作边刷题:70天一遍leetcode: day 7

    Max Points on a Line 要点:这题暴力解是用任何两点确定一条直线,然后对其他点检查是否共线,显然,这里没用空间来存储之前的检查结果,所以time complexity是O(n^3). ...

  8. 边工作边刷题:70天一遍leetcode: day 6

    Compare Version Numbers 题本身思路简单没什么可说的.值得一提的是corner case:多出来的0和没有是相同版本,这样最简单的处理是直接对没有的补0.这样因为需要补齐,循环是 ...

  9. 边工作边刷题:70天一遍leetcode: day 11-1

    Clone Graph dfs或者bfs都可以做,这题的要点是hashmap有两个作用:一是图遍历中的visited,另一个是存copy的结点来连接neighbors.hashmap即表示visite ...

最新文章

  1. 《大数据、小数据、无数据:网络世界的数据学术》一 导读
  2. 升级人脸识别,小鱼易连要打通企业与个人微信,重塑视频会议3.0!
  3. 人脑细胞在培养皿中学会打游戏,比AI学习速度快18倍还省电,有黑客帝国那味了...
  4. java跳转_java 跳转语句
  5. gulp,grunt,bower,feoman,fis 简单说明
  6. Java核心类库篇5——异常
  7. webpack和react_使用React和Webpack进行简单的代码拆分
  8. 好慌!支付宝App现“不锈钢内裤” 官方解释:已改为“煮内裤的锅”
  9. java队列 notify_java使用线程做一个消息队列,wait,notify
  10. Tableau:仪表板操作
  11. Scratch编程(八)扩展模块:文字朗读模块
  12. 爱荷华大学计算机科学专业,2015 U.S News计算机科学专业排名(不知道有没有伙伴在找)...
  13. POR BOR LVD
  14. 中国电信提前批(已offer)
  15. android 遥控器home键键值,android 中遥控器键值的添加和修改
  16. java整型数组转置输出,Java实现数组转置
  17. 芭比娃娃缘何泪洒上海滩?
  18. mac装node_Mac环境下node安装与卸载方法
  19. 项目进度管理-活动排序工具与技术(前导图、箭线图)
  20. C++设计模式——观察者模式(高屋建瓴)

热门文章

  1. 1001. A+B Format
  2. ECCV 2020 | 超快的车道线检测
  3. mAP提升40%!YOLO3改进版—— Poly-YOLO:更快,更精确的检测和实例分割
  4. 扫描式SSD用于公式检测,代码已开源
  5. 10 行代码构建常见目标检测应用
  6. include引入php报错,如何解决引入php文件报错的问题
  7. 卷积神经网络实现多个数字识别
  8. 腾讯云服务器CentOS安装JDK+Tomcat+MySQL详细步骤(以及遇到的各种坑)
  9. DWA泊车算法的实现
  10. 复练-关于面试的科技树-V1004-求职面试的阶段和策略