股票获取最大利润

1、题目背景

给定一个数组 prices,它的第i个元素prices[i]表示一支给定股票第i天的价格,你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票,设计一个算法来计算你所能获取的最大利润.返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回0

2、代码实现

public class Solution {

    public static void main(String[] args) {
        int[] nums1 = new int[]{3, 2, 4};
        int[] nums2 = new int[]{3, 7, 4,9};
        System.out.println(maxProfit(nums1));
    }
     /**
     * 给定一个数组 prices,它的第i个元素prices[i]表示一支给定股票第i天的价格
     *
     * 你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票,设计一个算法来计算你所能获取的最大利润。
     *
     * 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回0
     * @param prices
     * @return
     */
    public static int maxProfit(int[] prices) {
        if(prices.length <= 1)
            return 0;
        int min = prices[0], max = 0;
        for(int i = 1; i < prices.length; i++) {
            max = Math.max(max, prices[i] - min);
            min = Math.min(min, prices[i]);
        }
        return max;
    }

}

3、结果展示

2

Process finished with exit code 0
posted @ 2022-06-09 10:06  龙空白白  阅读(38)  评论(0编辑  收藏  举报