题解 | #牛群售价预测#

牛群售价预测

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;
    }
};
全部评论

相关推荐

02-16 13:52
门头沟学院 Java
给🐭🐭个面试机会吧:嘿,mvbatis
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务