算法分析与设计第七周
来源:互联网 发布:ipad qq游戏 网络异常 编辑:程序博客网 时间:2024/06/05 08:04
分析:最简单的是暴力法,即列举所以可能的组合,此法要嵌套扫两遍,所以复杂度为o(n^2).
然而此题可以用o(n)的复杂度解决,原因在于水桶原理,即关注短板。可以从两端开始,从短的一遍向内重选边,因为可能找到一个更长的边来抵消x轴减小带来的影响,并使高度与x轴乘机变大。重复上述步骤,直到两边重合。因此复杂度为o(n)。
代码:
class Solution {public: int maxArea(vector<int>& height) { int first = 0, second = height.size() - 1, maxA = 0; int high; while (first < second) { high = min(height[first], height[second]); maxA = max(maxA, high * (second - first)); while (height[first] <= high && first < second) ++first; while (height[second] <= high && first < second) --second; } return maxA; }};
测试通过:
阅读全文
0 0
- 算法分析与设计第七周
- 算法分析与设计第七周:134. Gas Station
- 第七周算法分析与设计:ZigZag Conversion
- 算法分析与设计课程作业第七周#1#2
- 算法设计与应用基础:第七周
- 算法设计与应用基础-第七周
- 计科《算法设计与分析》第七周作业1——背包问题
- 算法分析与设计丨第七周丨LeetCode(11)——Candy(Hard)
- 【算法分析与设计】【第七周】200 & 695. Number(Max Area) of Islands
- 算法设计与结构基础作业第七周
- 算法设计与应用基础: 第七周(1)
- 算法分析与设计
- 算法设计与分析
- 算法分析与设计
- 算法设计与分析
- 算法设计与分析
- 算法分析与设计
- 算法设计与分析
- 安装IPython Notepad
- 阶乘算法
- mybatis的增删改查和参数问题
- path-sum-ii
- Git pro 笔记
- 算法分析与设计第七周
- 一些关于Ubuntu和hadoop的学习日志
- OpenCV进行图形匹配的方法,如若原图图中没有欲找的图,怎么设置返回错误..
- balanced-binary-tree
- 手把手教你在 Ubuntu 上搭建 Git 服务器
- JAVA学习笔记之数组
- 记录 $\LaTeX$ 使用中的问题和解决方案
- python安装方法- 3.6.3版本
- 欢迎使用CSDN-markdown编辑器