主頁有其他數(shù)據(jù)結構內(nèi)容(持續(xù)更新中)
class Solution {public:
int trap(vector& height) {if (height.size()<= 2) return 0; // 可以不加
stackst; // 存著下標,計算的時候用下標對應的柱子高度
st.push(0);
int sum = 0;
for (int i = 1; i< height.size(); i++) {if (height[i]< height[st.top()]) { // 情況一
st.push(i);
} if (height[i] == height[st.top()]) {// 情況二
st.pop(); // 其實這一句可以不加,效果是一樣的,但處理相同的情況的思路卻變了。
st.push(i);
} else {// 情況三
while (!st.empty() && height[i] >height[st.top()]) {// 注意這里是while
int mid = st.top();
st.pop();
if (!st.empty()) {int h = min(height[st.top()], height[i]) - height[mid];
int w = i - st.top() - 1; // 注意減一,只求中間寬度
sum += h * w;
}
}
st.push(i);
}
}
return sum;
}
};
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧