边工作边刷题:70天一遍leetcode: day 67-1
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相关推荐
- 边工作边刷题:70天一遍leetcode: day 94-1
Largest BST Subtree 要点: http://articles.leetcode.com/largest-binary-search-tree-bst-in 这题重点是理解题意,还有道 ...
- 边工作边刷题:70天一遍leetcode: day 11-2
Gas Station 老题,这种circular的题一般都能转化成单向的.比如这题就是用sumDiff来判断是否有解,而start单向递增. class Solution(object):def c ...
- 边工作边刷题:70天一遍leetcode: day 92
House Robber I/II/III 这题代表了单向线性dp的基本pattern: build local best value at each element and track the gl ...
- 边工作边刷题:70天一遍leetcode: day 98
LRU Cache 这是一道leetcode的难题,这种题往往是算法结构很复杂,涉及一个或多个考点算法和数据结构的组合,同时又有很多corner cases要考虑.所以一定要找到合适memorize的 ...
- 边工作边刷题:70天一遍leetcode: day 97-2
Design Hit Counter 要点:因为是second granularity,所以可以用以秒为单位的circular buffer方法.这题简单在只需要count过去300秒的,增加难度可以 ...
- 边工作边刷题:70天一遍leetcode: day 73
Read N Characters Given Read4 I/II 要点:这题的要点就是搞清楚几个变量的内在逻辑:只有buffer是整4 bytes的.而client要读的bytes(需求)和实际上 ...
- 边工作边刷题:70天一遍leetcode: day 7
Max Points on a Line 要点:这题暴力解是用任何两点确定一条直线,然后对其他点检查是否共线,显然,这里没用空间来存储之前的检查结果,所以time complexity是O(n^3). ...
- 边工作边刷题:70天一遍leetcode: day 6
Compare Version Numbers 题本身思路简单没什么可说的.值得一提的是corner case:多出来的0和没有是相同版本,这样最简单的处理是直接对没有的补0.这样因为需要补齐,循环是 ...
- 边工作边刷题:70天一遍leetcode: day 11-1
Clone Graph dfs或者bfs都可以做,这题的要点是hashmap有两个作用:一是图遍历中的visited,另一个是存copy的结点来连接neighbors.hashmap即表示visite ...
最新文章
- 《大数据、小数据、无数据:网络世界的数据学术》一 导读
- 升级人脸识别,小鱼易连要打通企业与个人微信,重塑视频会议3.0!
- 人脑细胞在培养皿中学会打游戏,比AI学习速度快18倍还省电,有黑客帝国那味了...
- java跳转_java 跳转语句
- gulp,grunt,bower,feoman,fis 简单说明
- Java核心类库篇5——异常
- webpack和react_使用React和Webpack进行简单的代码拆分
- 好慌!支付宝App现“不锈钢内裤” 官方解释:已改为“煮内裤的锅”
- java队列 notify_java使用线程做一个消息队列,wait,notify
- Tableau:仪表板操作
- Scratch编程(八)扩展模块:文字朗读模块
- 爱荷华大学计算机科学专业,2015 U.S News计算机科学专业排名(不知道有没有伙伴在找)...
- POR BOR LVD
- 中国电信提前批(已offer)
- android 遥控器home键键值,android 中遥控器键值的添加和修改
- java整型数组转置输出,Java实现数组转置
- 芭比娃娃缘何泪洒上海滩?
- mac装node_Mac环境下node安装与卸载方法
- 项目进度管理-活动排序工具与技术(前导图、箭线图)
- C++设计模式——观察者模式(高屋建瓴)