class Solution {
//贪心法
public int maxProfit(int[] prices){
int min = prices[0],max = Integer.MIN_VALUE;
for(int i = 0;i < prices.length;i++){
max = Math.max(max,prices[i]-min);
min = Math.min(min,prices[i]);
}
return max;
}
}
class Solution {
//动态规划方法
public int maxProfit(int[] prices) {
//动态规划找到每个元素右边的最大值
int n = prices.length;
int[] rightMax = new int[n];
rightMax[n - 1] = prices[n - 1];
for(int i = n-2;i >= 0;i--){
rightMax[i] = Math.max(prices[i],rightMax[i+1]);
}
int maxFit = 0;
for(int i = 0;i < n;i++)
maxFit = Math.max(maxFit,rightMax[i] - prices[i]);
return maxFit;
}
}