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

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

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

面试的时候,死活在成功的边缘试探,没有成功写出来,遗憾! 一晚没有睡好,早起,刷题
  • 求最大差值, O(n)
  • 遍历,维护最小值num_min
  • 遍历,维护最大差值delta_max
  • 遍历,当前值与最小值求差,tmp
  • 差值tmp与delta_max比较,大于则更新最大值
  • 注意初始化最小值的时候,就用第一个元素
  • 初始化最大差值的时候,就按题目要求默认返回值
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param prices int整型一维数组 
 * @param pricesLen int prices数组长度
 * @return int整型
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
int maxProfit(int* prices, int pricesLen ) {
    // write code here
    // 1. 遍历,维护最小值,即每次比较当前元素与最小值,小则更新最小值
    // 2. 遍历,维护最大差值delta_max, 
    // 3. 遍历,当前元素与最小值求差,差值大于delat_max, 则更新,否则继续
    int num_min = prices[0];
    int delta_max = 0;
    for (int i = 0; i < pricesLen; i ++)
    {
         if (prices[i] < num_min)
         {
             num_min = prices[i];
             continue;
         }
         
         int tmp = prices[i] - num_min;
         if (tmp > delta_max)
         {
             delta_max = tmp;
         }
    }
    
    return delta_max;
}  
全部评论

相关推荐

05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
醉蟀:你是我今年见过的最美牛客女孩
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务