我是代码小白一个,但是本科传统机械专业,研究生是车联网,需要学习C++,但是也需要转行,所以学习完基础开始刷题力扣,
很多不懂的地方也是站在前辈的肩上学习,先自己思考编写在VS上,然后实现不了再看别人的文章,可能别人没法注解全部的语句,那我为大家解惑就一个个进行注解方便阅读,可能有些人读不懂我写的,欢迎留言。
这一次的题目算为简单,我也是小白思维直接采用的暴力法,自己编写的代码,双循环遍历计算找出最大容积,但是在力扣刷题提交时,超出了时间限制,就是意味着这种方法无法解决大输入的情况,但是算法是正确的,大家没事可以看看,建立自信,然后再看题库解析里面对于“双指针法”的说明。
#include
using namespace std;
#include
#include
int main()
{
vector<int> height;
int result = 0;
height.push_back(1);
height.push_back(8);
height.push_back(6);
height.push_back(2);
height.push_back(5);
height.push_back(4);
height.push_back(8);
height.push_back(3);
height.push_back(7);
for (int i = 0; i < height.size(); i++)
{
int tep = 0;
for (int j = i + 1; j < height.size(); j++)
{
if (height[i] >= height[j])
{
tep = height[j] * (j - i);
}
else
{
tep = height[i] * (j - i);
}
if (tep > result) //以此步来不断的更新最大的容积
{
result = tep;
}
}
}
cout << "最后的结果是:" << result << endl;
system("pause");
return 0;
}
以上是我在VS上自己编写的代码 可以跑通,但是不满足力扣提交的要求,所以大家还是要再看看“双指针法”!!!