1,暴力法
2.动态规划
与"53.最大子序列的和"相似
设dp[i]为,当price[i]为卖出天价格时,最大收益
那么:
dp[i]=Math.max(dp[i-1]-prices[i-1]+prices[i],0);
class Solution {
public int maxProfit(int[] prices) {
if(prices.length<=1) return 0;
else {
int[] dp = new int[prices.length];
dp[0]=0;
for (int i=1 ;i<prices.length;i++){
dp[i]=Math.max(dp[i-1]-prices[i-1]+prices[i],0);
}
Arrays.sort(dp);
return dp[dp.length-1];
}
}
}
class Solution(object):
def maxProfit(self, prices):
"""
:type prices: List[int]
:rtype: int
"""
if len(prices)<=1 :
return 0;
else:
dp=[0 for i in range(len(prices))]
dp[0]=0
for i in range(1,len(prices)):
dp[i]=max(dp[i-1]+prices[i]-prices[i-1],0)
return max(dp)