1 bu

不合格答案 暴力
// 时间超时
int my_1(vector<int>& height){
// x * hign_min
int max_=0;
for(int i=0; i<height.size()-1;i++){
for(int j=i+1; j<height.size();j++){
int high_= std::min(height[i],height[j]);
int wigth_=j-i;
int cureent_=high_*wigth_;
max_=std::max(cureent_,max_);
}
}
return max_;
}
官方思路

参考思路1

// 参考思路自己写
int my_2(vector<int>& height){
int max_=0;
int i=0;
int j=height.size()-1;
while(i<j){
int high_= std::min(height[i],height[j]);
int wigth_=j-i;
int cureent_=high_*wigth_;
// if(cureent_>max_){ // 完美答案 100%
// max_=cureent_;
// }
max_=std::max(cureent_,max_); // 16% 击败 每次都要执行 浪费时间
if(height[i]>=height[j]){
j--;
}
else{
i++;
}
}
return max_;
}
完善2

class Solution {
public:
// 时间超时
int my_1(vector<int>& height){
// x * hign_min
int max_=0;
for(int i=0; i<height.size()-1;i++){
for(int j=i+1; j<height.size();j++){
int high_= std::min(height[i],height[j]);
int wigth_=j-i;
int cureent_=high_*wigth_;
max_=std::max(cureent_,max_);
}
}
return max_;
}
// 参考思路自己写
int my_2(vector<int>& height){
int max_=0;
int i=0;
int j=height.size()-1;
while(i<j){
int high_= std::min(height[i],height[j]);
int wigth_=j-i;
int cureent_=high_*wigth_;
if(cureent_>max_){ // 完美答案 100%
max_=cureent_;
}
// max_=std::max(cureent_,max_); // 16% 击败 每次都要执行 浪费时间
if(height[i]>=height[j]){
j--;
}
else{
i++;
}
}
return max_;
}
int maxArea(vector<int>& height) {
//return my_1(height);
return my_2(height);
//
}
};
浙公网安备 33010602011771号