目录
LeetCode121. 买卖股票的最佳时机
LeetCode122.买卖股票的最佳时机II
链接:121.买卖股票的最佳时机
给定一个数组
prices
,它的第i
个元素prices[i]
表示一支给定股票第i
天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回
0
。
public int maxProfit(int[] prices) {
// dp[i][0]表示第i天持有股票获得的最大利润
// dp[i][1]表示第i天不持有股票获得的最大利润
int[][] dp=new int[prices.length][2];
// dp[i][0]=Math.max(dp[i-1][0],dp[i-1][1]-prices[i]);
// dp[i][1]=Math.max(dp[i-1][1],dp[i-1][0]+prices[i]);
dp[0][0]=-prices[0];
dp[0][1]=0;
for(int i=1;i
链接:122.买卖股票的最佳时机II
给你一个整数数组
prices
,其中prices[i]
表示某支股票第i
天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。
返回 你能获得的 最大 利润 。
public int maxProfit(int[] prices) {
// dp[i][0]表示第i天持有股票获得的最大利润
// dp[i][1]表示第i天不持有股票获得的最大利润
int[][] dp=new int[prices.length][2];
// dp[i][0]=Math.max(dp[i-1][0],dp[i-1][1]-prices[i]);
// dp[i][1]=Math.max(dp[i-1][1],dp[i-1][0]+prices[i]);
dp[0][0]=-prices[0];
dp[0][1]=0;
for(int i=1;i