- 思路
- 最暴力的做法是无论输入如何,双层循环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; }