Leecode121. 买卖股票的最佳时机

简介: Leecode121. 买卖股票的最佳时机

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

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

注意你不能在买入股票前卖出股票。

示例 1:

输入: [7,1,5,3,6,4]

输出: 5

解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。

注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。

示例 2:

输入: [7,6,4,3,1]

输出: 0

解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。

解题思路:直接在遍历整个数组的时候如果当前价格 小于 设定最低值,那么就可以把当前的价格赋值给当前价格,如果当前价格 - 最低价格比最大的收益值大,那就把这个差值赋值给最大的收益值,遍历完成之后,那么得到的最大收益值就是所想要的了。

class Solution {
    public int maxProfit(int[] prices) {
        int minPrice =  Integer.MAX_VALUE;
        int maxProfit = 0;
        for(int i = 0; i < prices.length;i++){
            if(prices[i] < minPrice){
                minPrice = prices[i];
            }else if(prices[i] - minPrice > maxProfit){
                maxProfit = prices[i] - minPrice;
            }
        }
        return maxProfit;
    }
}

运行截图如下:


相关文章
|
6月前
|
算法
《LeetCode》—— 买卖股票的最佳时机
《LeetCode》—— 买卖股票的最佳时机
|
算法
【动态规划刷题 7】 买卖股票的最佳时机含冷冻期&& 买卖股票的最佳时机含手续费
【动态规划刷题 7】 买卖股票的最佳时机含冷冻期&& 买卖股票的最佳时机含手续费
|
5月前
|
算法
leetcode题解:121.买卖股票的最佳时机
leetcode题解:121.买卖股票的最佳时机
40 0
|
5月前
|
存储 算法 数据可视化
买卖股票的最佳时机 II(LeetCode 122)
买卖股票的最佳时机 II(LeetCode 122)
|
6月前
|
算法
【力扣】121. 买卖股票的最佳时机、122.买卖股票的最佳时机Ⅱ
【力扣】121. 买卖股票的最佳时机、122.买卖股票的最佳时机Ⅱ
|
6月前
|
算法
leetcode121. 买卖股票的最佳时机
leetcode121. 买卖股票的最佳时机
35 0
|
6月前
代码随想录 Day43 动态规划11 LeetCode T309 买卖股票的最佳时期含冷冻期 T714买卖股票的最佳时机含手续费
代码随想录 Day43 动态规划11 LeetCode T309 买卖股票的最佳时期含冷冻期 T714买卖股票的最佳时机含手续费
51 0
|
6月前
|
算法
leetcode-121:买卖股票的最佳时机
leetcode-121:买卖股票的最佳时机
45 0
|
6月前
|
算法
leetcode-123:买卖股票的最佳时机 III
leetcode-123:买卖股票的最佳时机 III
42 0
leetcode 121 买卖股票的最佳时机
leetcode 121 买卖股票的最佳时机
83 0
leetcode 121 买卖股票的最佳时机