Container With Most Water
来源:互联网 发布:中国软件杯大赛 编辑:程序博客网 时间:2024/06/15 03:01
Container With Most Water
问题描述:
Given n non-negative integers a1, a2, …, an, where each represents a
point at coordinate (i, ai). n vertical lines are drawn such that the
two endpoints of line i is at (i, ai) and (i, 0). Find two lines,
which together with x-axis forms a container, such that the container
contains the most water.Note: You may not slant the container and n is at least 2.
思路:在这个问题中,我们要找到一个容器包含最多的点,如何解决这个问题呢?我们举个例子:
在上图中,我们一共有10个数据,我们要找两条线和x轴一起形成一个容器,使得这个容器最大,很明显不能是0到9这两条线,因为0的值是0,所以这个容器是0,因为9的值比较大(8),我们不可能把9移到8,而是选择左边的线用1,那么此时容器的面积是
代码:
#include<iostream>#include<vector>#include<cstdlib>#include<ctime>#include<fstream>using namespace std;int maxArea(vector<int>& height){ int water = 0; int i = 0,j = height.size() - 1; while(i < j){ int h = min(height[i],height[j]); water = max(water,(j - i)*h); while(height[i] <= h && i < j) i++; while(height[j] <= h && i < j) j--; } return water;}int main(){ vector<int> height; srand(unsigned(time(0))); for(int i = 0; i < 10; i++){ height.push_back(rand()%10); } cout<<"height"<<endl; for(int i = 0; i < height.size(); i++){ cout<<height[i]<<" "; } cout<<"water: "<<maxArea(height)<<endl; //save the data ofstream SaveFile("height.txt"); for(int i = 0; i < height.size(); i++){ SaveFile << height[i]; SaveFile << " "; } SaveFile.close(); }
运行时间:
阅读全文
0 0
- Container With Most Water
- Container with most water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Netty系列之Netty线程模型
- maven项目发布到tomcat里lib包没有发布的问题
- Eclipse 使用ant打jar包报错
- 技术文章网址收藏
- Hibernate HQL详解
- Container With Most Water
- Kotlin入门第一课
- golang 真正的高并发用法 查找素数
- 标签data-*自定义属性值和根据data属性值查找对应标签
- 程序员需要具备的职业素养
- 解决bootstrap 中解决表格中内容过大而页面杂乱问题
- 安卓中WebView的常用方法
- 关于java泛型擦除反编译后泛型会出现问题
- JNI错误集