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

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

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

相关推荐

能干的三文鱼刷了100道题:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务