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

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

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-24 19:22
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客279957775号:铁暗恋
点赞 评论 收藏
分享
挣K存W养DOG:他真的很中意你,为什么不回他
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务