剑指offer_股票的最大利润
题目描述
可以有一次买入和一次卖出,买入必须在前。求最大收益

1 class Solution { 2 public int maxProfit(int[] prices) { 3 int max = 0; 4 for(int i=0;i<prices.length-1;i++){ 5 for(int j=i+1;j<prices.length;j++){ 6 if(prices[j]-prices[i]>max) max = prices[j]-prices[i]; 7 } 8 } 9 10 return max; 11 } 12 }
方法二:
使用贪心策略,假设第 i 轮进行卖出操作,买入操作价格应该在 i 之前并且价格最低。
1 class Solution { 2 public int maxProfit(int[] prices) { 3 if(prices==null||prices.length==0) return 0; 4 int min = prices[0]; 5 int max = 0; 6 for(int i = 1; i<prices.length;i++){ 7 min = Math.min(min,prices[i]); 8 max = Math.max(max,prices[i]-min); 9 } 10 return max; 11 } 12 }

浙公网安备 33010602011771号