买卖股票的最佳时机

法一:动态规划

制造一个动规数组dp。存储价格表prices为i时的最佳价格差。这第i次和历史最小值的差,和dp存储的i-1的遗留最大收益相比,谁大谁存进dp的第i个记录作为第i时的遗留最大收益。也就是,前i天的最大收益 = max{前i-1天的最大收益,第i天的价格-前i-1天中的最小价格}。

class Solution {
    public int maxProfit(int[] prices) {
int[] dp=new int[prices.length];
dp[0]=0;int min=prices[0];int i=1;
for(;i<prices.length;i++){
    if(prices[i]<min)
    min=prices[i];
    dp[i]=Math.max(dp[i-1],prices[i]-min);
}
return dp[i-1];
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值