买卖股票的最佳时机 II

给你一个整数数组 prices ,其中 pricesi 表示某支股票第 i 天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多

只能持有一股 股票。你也可以先购买,然后在 同一天 出售。返回 你能获得的 最大 利润 。

示例 1:

输入:prices = 7,1,5,3,6,4

输出:7

解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。

随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3 。

总利润为 4 + 3 = 7 。

示例 2:

输入:prices = 1,2,3,4,5

输出:4

解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。

总利润为 4 。

示例 3:

输入:prices = 7,6,4,3,1

输出:0

解释:在这种情况下, 交易无法获得正利润,所以不参与交易可以获得最大利润,最大利润为 0 。

js 复制代码
/**
 * @param {number[]} prices
 * @return {number}
 * 利用 动态规划
 */
const maxProfit = function (prices) {
    const n = prices.length;
    const profit = new Array(n).fill(0).map(v => new Array(2).fill(0));
    profit[0][0]=0,profit[0][1]=-prices[0];
    for (let i = 1; i < n; i++) {
        profit[i][0] = Math.max(profit[i-1][0],profit[i-1][1]+prices[i]);
        profit[i][1] = Math.max(profit[i-1][1],profit[i-1][0]-prices[i]);
    }
    return profit[n - 1][0];
};
相关推荐
hans汉斯23 分钟前
《软件工程与应用》期刊推荐&10月版面征稿中
图像处理·人工智能·深度学习·算法·音视频·软件工程
叠层归一研究院37 分钟前
AGI 系统(八):符号范畴嵌入函子 — SymCat ↪ C_M107 严格化
c语言·开发语言·人工智能·算法·transformer·agi
明朝百晓生1 小时前
Deep RL learning[2026/8]
开发语言·javascript·人工智能
用户938515635071 小时前
ESLint 代码规范完全指南——从 AST 原理到 flat config 逐行解析
javascript·后端·代码规范
其美杰布-富贵-李2 小时前
08 进阶评估指标与算法特定指标
人工智能·算法
.道阻且长.2 小时前
5.LeetCode算法习题讲解--双指针--有效三角形的个数
算法·leetcode·职场和发展
我是海飞2 小时前
杰理JL703N SSD1306 OLED(128x64) 点阵屏移植说明
单片机·算法·嵌入式·音频·杰理
wabs6663 小时前
关于图论【最短路径之Bellman_ford 算法(单源有限最短路)|卡码网96.城市间货物运输III的思考】
数据结构·算法·图论·卡码网·bellman_ford·单源有限最短路
kyriewen3 小时前
今年裁了16万技术人——但字节前端岗反而涨了23%
前端·javascript·面试
wuyk5554 小时前
2.队列:先进先出的线性数据结构
c语言·数据结构·stm32·单片机