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)