题目链接:https://leetcode.com/problems/best-time-to-buy-and-sell-stock/submissions/
方法一:暴力 O(n2)
AC 118ms 8% Java:
class Solution {
public int maxProfit(int[] prices) {
int min=Integer.MAX_VALUE;
int max=0;
for(int i=0;i<prices.length;i++){
if(prices[i]<min)
min=prices[i];
if(prices[i]-min>max)
max=prices[i]-min;
}
return max;
}
}
方法二:O(n)
这种方法只需保存最小值,然后求解max即可。
AC 0ms 100% Java:
class Solution {
public int maxProfit(int[] prices) {
int max=0;
for(int i=prices.length-1;i>=0;i--){
for(int j=i;j>=0;j--){
max=Math.max(prices[i]-prices[j],max);
}
}
return max;
}
}