- 思路
- 最暴力的做法是无论输入如何,双层循环i,j,选出max_profit;
- 参考大佬的代码,只要写一层循环i,还有一个变量index =0,只有当price_vec[j]>price_vec[index]时才更新index = i;如输入为1 9 45 23 89 34时,index=0不需再更新,遍历一遍数组就够了;
- 代码
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> price_array;
int temp_price;
int max_profit = 0;
int index = 0;
while(cin >> temp_price){
price_array.push_back(temp_price);
if(getchar()=='\n')
break;
}
for(int i =0; i < price_array.size(); i++){
if(price_array[i] - price_array[index] > 0){
int temp = price_array[i] - price_array[index];
max_profit = (max_profit < temp)? temp : max_profit;
}
else{
index = i;
}
}
cout << max_profit << endl;
return 0;
}