【Leetcode】Best Time to Buy and Sell Stock (DP)

来源:互联网 发布:加盟淘宝店 编辑:程序博客网 时间:2024/04/30 19:40

Say you have an array for which the ith element is the price of a given stock on day i.

If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit.

这道题看上去像是求最大值最小值问题即在最小值点买入最大值点卖出这样就能获得最大利润但是因为有可能出现最大值在最小值前面,所以不可能先卖再买。此方法行不通。

所以我们采用局部最优和全局最优来动态规划

public static int maxProfit(int[] prices) {int localMax = 0;int globalMax = 0;for (int i = 0; i < prices.length - 1; i++) {localMax = Math.max(0, localMax + prices[i + 1] - prices[i]);globalMax = Math.max(globalMax, localMax);}return globalMax;}


0 0
原创粉丝点击