-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRainWater.cpp
More file actions
35 lines (29 loc) · 988 Bytes
/
RainWater.cpp
File metadata and controls
35 lines (29 loc) · 988 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//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.
class Solution {
public:
int maxArea(vector<int>& height)
{
int max_area = 0;
int size = height.size();
if(size < 2)
return 0;
for(int i=0;i<size-1;i++)
{
for(int j= i+1; j<size; j++)
{
int area_now = findArea(i,j,height[i],height[j]);
if(max_area < area_now)
max_area = area_now;
}
}
return max_area;
}
int findArea(int i,int j, int ivalue, int jvalue)
{
int length;
length = (ivalue < jvalue) ? ivalue : jvalue;
return length*(j-i);
}
};