题解 | #牛群售价预测#

牛群售价预测

https://www.nowcoder.com/practice/bbdb8d6f3a2e434e87f749358d16d653

知识点

贪心

思路

由题意可知,为了得到最大利润,需要从左往右遍历,维护最小price[i]与其右侧的最大price[i+?]。

所以我们只需要使用minn来维护最小的price[i]作为购入价。

在向右遍历的过程中:

遇到price[i]-minn的情况就更新ans=max(ans,price[i]-minn)

遇到price[i]<minn的情况就更新minn,一次遍历即可得到最大ans。

返回时若ans>0则返回ans,否则返回0。

代码c++

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param prices int整型vector 
     * @return int整型
     */
    int max_profit(vector<int>& prices) {
        // write code here
        int ans=0;
        int n=prices.size();
        int minn=prices[0];
        for(int i=0;i<prices.size();i++)
        {            
                minn=min(minn,prices[i]);
                if(prices[i]>minn)
                {
                    ans=max(ans,prices[i]-minn);
                }

        }
        return ans>0?ans:0;
    }
};
全部评论

相关推荐

点赞 评论 收藏
分享
牛客868257804号:九个中铁八个中建
点赞 评论 收藏
分享
点赞 评论 收藏
分享
请看图片
投递叮咚买菜等公司10个岗位 >
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务