标签:
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.
1 /************************************************************************* 2 > File Name: LeetCode011.c 3 > Author: 4 > Mail: 5 > Created Time: Wed 27 Apr 2016 02:11:36 AM CST 6 ************************************************************************/ 7 8 /************************************************************************* 9 10 Container With Most Water 11 12 Given n non-negative integers a1, a2, ..., an, 13 14 where each represents a point at coordinate (i, ai). 15 16 n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). 17 18 Find two lines, which together with x-axis forms a container, 19 20 such that the container contains the most water. 21 22 Note: You may not slant the container. 23 24 ************************************************************************/ 25 26 #include <stdio.h> 27 28 int maxArea(int* height, int heightSize) { 29 30 int left = 0; 31 int right = heightSize - 1; 32 int max = 0; 33 34 while( left < right ){ 35 36 int water = ( right - left ) * ( height[left] < height[right] ? height[left++] : height[right--] ); 37 max = max > water ? max : water; 38 printf("Each water is %d\n", water); 39 } 40 printf("Max water is %d\n", max); 41 return max; 42 43 } 44 45 int main() 46 { 47 int heights[] = {4, 2, 1, 5, 6, 2, 0, 1}; 48 int size = 8; 49 50 maxArea( heights, size ); 51 52 return 0; 53 }
标签:
原文地址:http://www.cnblogs.com/Juntaran/p/5437357.html