2015-04-01 33 views

回答

0

從已發佈的鏈接:

對於HIST [TP],「左指數」是以前的(以前以TP)項目在堆棧和「右指數」是「我'(當前指數)。

所以,你必須編輯getMaxArea()方法來存儲最大區域的左側和右側指標:

int getMaxArea(int hist[], int n) 
{ 
// .. 
int rindex=0; 
int lindex=0; 
while (i < n) 
{ 
//.. 
      if (max_area < area_with_top) 
      {max_area = area_with_top; 
      lindex=i-(max_area/hist[tp])+1; 
      rindex=i; 
      } 
//.. 
} 
while (s.empty() == false) 
{ 
//.. 
      if (max_area < area_with_top) 
      {max_area = area_with_top; 
      lindex=i-(max_area/hist[tp])+1; 
      rindex=i; 
      } 
//.. 
} 
//.. 
cout << "indexs: " << lindex << " " << rindex << "\n"; // u may pass them to main method, if needed 
return max_area; 
} 

我不是一個C++程序員,所以你可以優化我的嘗試, 你可以在這裏找到編輯的代碼:ideone: online compiler