力扣刷题Days26-122.买股票最佳时期||(js)

目录

1,题目

2,代码

动态规划

3,回顾与总结

3.1解题思路回顾

(1)定义状态

(2)转移方程

3.2javascript中语法二维数组的创建

3.3动态规划 状态变化的实现


1,题目

给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。

在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。

返回 你能获得的 最大 利润 。

2,代码

动态规划

/**
 * @param {number[]} prices
 * @return {number}
 */
var maxProfit = function(prices) {
    const n = prices.length;
    if(n === 0){
        return 0;
    }
    const dp = new Array(n).fill(0).map(v=>Array(2).fill(0));
    dp[0][0] = 0;
    dp[0][1] = -prices[0];
    for(let i = 1; i<n ; i++){
        dp[i][0] = Math.max(dp[i-1][1] + prices[i],dp[i-1][0]);
        dp[i][1] = Math.max(dp[i-1][0] - prices[i],dp[i-1][1]);
    }
    return dp[n-1][0];
};

3,回顾与总结

3.1解题思路回顾

(1)定义状态

dp[i][0]表示第i天交易完成后手里没有股票的最大利润;

dp[i][1]表示第i天交易完成后手里持有一支股票的最大利润;

(2)转移方程

dp[i][0]表示这一天手里没有股票,则

前一天手里也是没有股票的,即dp[i-1][0];或者前一天手里持有一只股票,今天要将其出售,即dp[i-1][1]-price[i];

dp[i][1]表示这一天手里持有一支股票,则

前一天手里就持有该股票的,即dp[i-1][1];或者前一天手里没有股票,今天要进行购买,即dp[i-1][0]-price[i];

则有状态转移方程为:

dp[i][0]=max{dp[i−1][0],dp[i−1][1]+prices[i]}

dp[i][1]=max{dp[i−1][1],dp[i−1][0]−prices[i]}

3.2javascript中语法二维数组的创建

const dp = new Array(n).fill(0).map(v=>Array(2).fill(0));

3.3动态规划 状态变化的实现

for(let i = 1; i<n ; i++){
        dp[i][0] = Math.max(dp[i-1][1] + prices[i],dp[i-1][0]);
        dp[i][1] = Math.max(dp[i-1][0] - prices[i],dp[i-1][1]);
    }

勉励自己:贵在坚持!

相关推荐

  1. 面试150 | 买卖股票最佳时期

    2024-03-28 17:14:01       65 阅读
  2. 122. 买卖股票最佳时机 II

    2024-03-28 17:14:01       58 阅读
  3. 122. 买卖股票最佳时机 II

    2024-03-28 17:14:01       51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-28 17:14:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-28 17:14:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-28 17:14:01       87 阅读
  4. Python语言-面向对象

    2024-03-28 17:14:01       96 阅读

热门阅读

  1. kafka

    kafka

    2024-03-28 17:14:01      31 阅读
  2. ffmpeg命令行

    2024-03-28 17:14:01       41 阅读
  3. Leetcode 169

    2024-03-28 17:14:01       44 阅读
  4. go加载配置

    2024-03-28 17:14:01       41 阅读
  5. python快速入门一

    2024-03-28 17:14:01       44 阅读
  6. Http和Https

    2024-03-28 17:14:01       41 阅读
  7. 【无标题】

    2024-03-28 17:14:01       38 阅读