很简单的迭代,时间O(n),空间O(1)
public int maxProfit(int[] prices) { // 记录一个最小值,每次遇到更小的值就迭代掉, // 同时每次循环都判断一下是否可以获得最大收益 int minPrice=Integer.MAX_VALUE,res=0; for(int price:prices){ if(price<minPrice) minPrice = price; res=Math.max(res, price-minPrice); } return res; }