121. 买卖股票的最佳时机(贪心算法)


121. 买卖股票的最佳时机

题目

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。

如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。

注意:你不能在买入股票前卖出股票。
在这里插入图片描述

解题思路

题目要求只能一次买卖。
那么我们只需要不断的更新最小值,并且每次循环都用当前值减去最小值,获取到差值,再取最大的差值即最大利润

代码

class Solution {
  public int maxProfit(int[] prices) {
    if (prices.length==0){
        return 0;
    }

        int min =prices[0];
        int result=0;//将要返回的结果
        for (int i=1;i<prices.length;i++){//i从1开始,因为0已经被定为目前的最小值了。
            if (prices[i]<min){
                min=prices[i];
            }
            int tmp=prices[i]-min;//用当前值减去最小值,得到差值(如果当前值就是最小值那么差值为0)
            
            if (tmp>result){
                result=tmp;
            }
        }
        return  result;


    }
}

文章作者: fFee-ops
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fFee-ops !
评论
  目录