您的位置:首页 > 大数据 > 人工智能

Analysis on “Container With Most Water ”

2014-12-05 13:54 459 查看

  Container With Most Water Problem:

  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.





  Analysis:

  The wooden barrel principle, the bucket of water storage depends on the shortest board. //木桶原理,水桶中的存水量取决于短板。

  step i: set two pointer istart and iend to point the current working min and max index of the array,
initialize them as: istart = 0, iend = height.size() - 1;
  step ii. when the lower index istart is less than the higher index iend, move the "short
board
" to gain the volume of the new container, likewise: the area = min(height[istart], height[iend]) * (iend - istart); otherwise, return the larger volume between the current max volume and the
volume of the new container
;
  step iii.do step ii till istart less than iend;

  So the c++sourcecode:
  #include <vector>//vector
  using std::vector;
  #include <limits.h>//INT_MIN
  #include <windows.h>//min, max

  int maxArea(vector<int> &height) {
  int istart = 0, iend = height.size()-1;
  int result = INT_MIN;
  while (istart < iend) {
    int area = min(height[istart], height[iend]) * (iend - istart);
    result = max(result, area); // Error code: int reslut = max(result, area); redefinition the global variable as
a Local variable
    if (height[istart] <= height[iend]) {
      ++istart;
    }else {
      --iend;
    }
  }
  return result;
  }

  What I have learnt from this problem

when using global variable, you should be initialize it and must mind where you use it, use it correct. Don't redefinition it as a Local variable, never do it again;

draw a mind map in your paper to think very clearly before you coding;
C++ allow program redefine the variable in the
inner scope that have already defined in the outer scope, so this is a trip when you have no idea about the mechanism.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: