当前位置:网站首页>leetcode 剑指 Offer 63. 股票的最大利润
leetcode 剑指 Offer 63. 股票的最大利润
2022-07-30 08:52:00 【kt1776133839】
题目描述:
假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?
样例:
示例 1:
输入: [7,1,5,3,6,4]
输出: 5
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。
示例 2:
输入: [7,6,4,3,1]
输出: 0
解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。
限制:
0 <= 数组长度 <= 10^5
解题思路:
设共有 n 天,第 a 天买,第 b天卖,则需保证 a<b ;可推出交易方案数共有:
(n−1)+(n−2)+⋯+2+1=n(n−1)/2
因此,暴力法的时间复杂度为 O(n2) 。考虑使用动态规划降低时间复杂度,以下按照流程解题。
动态规划
状态定义: 设动态规划列表 dp ,dp[i] 代表以 prices[i] 为结尾的子数组的最大利润(以下简称为 前 i日的最大利润 )。
转移方程: 由于题目限定 “买卖该股票一次” ,因此前 i 日最大利润 dp[i] 等于前 i−1 日最大利润 dp[i−1]和第 i 日卖出的最大利润中的最大值。
前i日最大利润=max(前(i−1)日最大利润,第i日价格−前i日最低价格)
dp[i]=max(dp[i−1],prices[i]−min(prices[0:i]))
初始状态: dp[0]=0dp[0] = 0dp[0]=0 ,即首日利润为 000 ;
返回值: dp[n−1]dp[n - 1]dp[n−1] ,其中 nnn 为 dpdpdp 列表长度。

Java程序:
class Solution {
public int maxProfit(int[] prices) {
int cost = Integer.MAX_VALUE, profit = 0;
for(int price : prices) {
cost = Math.min(cost, price);
profit = Math.max(profit, price - cost);
}
return profit;
}
}
边栏推荐
- [Fun BLDC series with zero basics] Taking GD32F30x as an example, the timer related functions are explained in detail
- 涛思 TDengine 2.6+优化参数
- 用示波器揭示以太网传输机制
- 如何使用 Jmeter 进行抢购、秒杀等场景下,进行高并发?
- 20220728 Use the bluetooth on the computer and the bluetooth module HC-05 of Huicheng Technology to pair the bluetooth serial port transmission
- 【零基础玩转BLDC系列】以GD32F30x为例定时器相关功能详解
- 延迟队列MQ
- Liunx服务器安装SVN(安装包版)
- TreeSet解析
- 0729放假自习
猜你喜欢

百度paddleocr检测训练

Field interpretation under "Surgical variables (RX SUMM-SURG OTH REG/DIS)" in SEER database

获取显示器数据

20个电路能懂5个以上,足以证明你在电子行业混过!

统一异常处理导致ResponseBodyAdvice失效

TreeSet解析

一文读懂二十种开关电源拓扑结构

HashSet和LinkedHashSet

C#中Config文件中,密码的 特殊符号的书写方法。

Concise Notes on Integrals - Types of Curve Integrals of the Second Kind
随机推荐
Devops和低代码的故事:螳螂捕蝉,黄雀在后
日志导致线程Block的这些坑,你不得不防
PyTorch安装及环境配置(Win10)
MySQL中使用IN 不会走索引分析以及解决办法
宝塔搭建DM企业建站系统源码实测
BaseQuickAdapter方法getBindingAdapterPosition
电路分析:运放和三极管组成的恒流源电路
TreeSet parsing
Jenkins 如何玩转接口自动化测试?
Leetcode - 990: equations of satisfiability
HashSet和LinkedHashSet
研发转至FAE(现场应用工程师),是否远离技术了?有前途吗?
统一异常处理导致ResponseBodyAdvice失效
微软 SQL 服务器被黑,带宽遭到破坏
ant-design form form verification upload component (with personal packaged upload component)
ClickHouse
Windows 下安装 MySQL
How to run dist file on local computer
回板后,处理器不启动,怎么办?
Field interpretation under "Surgical variables (RX SUMM-SURG OTH REG/DIS)" in SEER database