题解 | #牛群售价预测#
牛群售价预测
https://www.nowcoder.com/practice/bbdb8d6f3a2e434e87f749358d16d653
题解 | 牛群售价预测
语言: C++
知识点: 贪心
分析: 若想要获得更高的利润,则必然是在卖出之前选择价格最低的那一天买入的。因此遍历价格过程中维护一个minIn
变量表示之前的最低价格(买入价格)以及一个maxMoney
变量表示当前可以获得的最高利润值(前者初始化为第一天的价格,后者依题意无获利情况时返回0因此初始化为0)。遍历过程中每天选择当前卖出获利与之前获利的较大值赋值给maxMoney
,最终遍历结束后其值即为最大利润。
代码实现:
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param prices int整型vector
* @return int整型
*/
int max_profit(vector<int>& prices) {
int minIn = prices[0], maxMoney = 0;
for(int i = 1; i < prices.size(); i++)
{
maxMoney = max(maxMoney, prices[i] - minIn); // 选择当前卖出获利和以往获利的最大值
minIn = min(minIn, prices[i]); // 选择最小的买入价格
}
return maxMoney;
}
};