首页 > 试题广场 >

股票交易日

[编程题]股票交易日
  • 热度指数:8685 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

在股市的交易日中,假设最多可进行两次买卖(即买和卖的次数均小于等于 2 ),规则是必须一笔成交后进行另一笔(即买-卖-买-卖的顺序进行)。给出一天中的股票变化序列,请写一个程序计算一天可以获得的最大收益。请采用时间复杂度低的方法实现。

给定价格序列 prices 及它的长度 n ,请返回最大收益。

数据范围:
示例1

输入

[10,22,5,75,65,80],6

输出

87
头像 17c89
发表于 2024-01-31 18:22:40
import java.util.*; public class Stock { public int maxProfit(int[] prices, int n) { // return solution1(prices, n); // return so 展开全文
头像 苏觅云
发表于 2022-05-20 13:25:30
import java.util.*; public class Stock { public int maxProfit(int[] prices, int n) { // write code here // 动态规划(易于理解版本) / 展开全文
头像 zgq_nk
发表于 2023-08-06 15:31:59
import java.util.*; public class Stock { public int maxProfit(int[] prices, int n) { // write code here int min1 = prices[0]; 展开全文
头像 bandiaoz
发表于 2024-12-28 22:52:25
解题思路 这是一道最多进行两次股票交易的问题,主要思路如下: 问题分析: 可以进行最多两次交易 必须先买入才能卖出 第二次交易必须在第一次交易完成后进行 求最大收益 解决方案: 使用动态规划,维护四个状态: : 第一次买入后的最大收益 : 第一次卖出后的最大收益 : 第二次买入后的最 展开全文

热门推荐

通过挑战的用户

查看代码
股票交易日