题解 | #买卖股票的最好时机(一)#

买卖股票的最好时机(一)

http://www.nowcoder.com/practice/64b4262d4e6d4f6181cd45446a5821ec

C语言求解买卖股票的最好时机(一)

  1. 解题思路: 使用贪心算法,不妨设对于 8 9 4 5 2 7 1 ,遍历的过程中维护两个变量:一个是最低的购入价格,另一个是当前出售的利润最大值。假设第n天出售了股票,那么一定是在1~n-1之间的最低值买入的。dp[i] = a[i] - min_buy。因此使用一个变量不断记录最低的购入价格。
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param prices int整型一维数组 
 * @param pricesLen int prices数组长度
 * @return int整型
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
int maxProfit(int* prices, int pricesLen ) {
    // write code here
    if(pricesLen<=1)
        return 0;
    int min_buy=prices[0];//初始化最小买入价格
    int max_sale=0;
    for(int i=1;i<pricesLen;i++){
    //第i天出售:判断利润是否大于 max_sale 
        if(prices[i]-min_buy>max_sale)
            max_sale=prices[i]-min_buy;
      //第i天是否是最低的买入价格,如果刷新最低值 之后沿用这个值
        if(prices[i]<min_buy)
            min_buy=prices[i];
        
    }
    //返回最大利润
    return max_sale;
}
全部评论

相关推荐

10-07 23:57
已编辑
电子科技大学 Java
八街九陌:博士?客户端?开发?啊?
点赞 评论 收藏
分享
ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
(010)&nbsp;5083&nbsp;3000&nbsp;这样的电话到底是哪家公司啊&nbsp;打过去是什么智联招聘&nbsp;救命🆘
小火柴燃烧吧:应该是你通过智联投的公司人事联系你了,或者是把招聘渠道交给智联的公司,你想想投过哪些公司
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务