LeetCode 121. 买卖股票的最佳时机

devtools/2024/10/18 21:10:53/

LeetCode 121. 买卖股票的最佳时机

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。
示例 1:
输入:[7,1,5,3,6,4]
输出:5
解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。
示例 2:
输入:prices = [7,6,4,3,1]
输出:0
解释:在这种情况下, 没有交易完成, 所以最大利润为 0。
提示:
1 <= prices.length <= 105
0 <= prices[i] <= 104

动态规划

class Solution:def maxProfit(self, prices: List[int]) -> int:# dp[i][0] 表示在第i天及以前买入股票最低的价格# dp[i][1] 表示在第i天卖出股票的收益# 有的时候交换维度会很方便# dp[0][i] 表示在第i天及以前买入股票最低的价格# dp[1][i] 表示在第i天卖出股票的收益# dp[0][i] = min(dp[0][i-1], prices[i])# dp[1][i] = prices[i] - dp[0][i]n = len(prices)dp = [[sys.maxsize] * n, [0] * n]dp[0][0] = prices[0]dp[1][0] = 0for i in range(1, n):dp[0][i] = min(dp[0][i - 1], prices[i])dp[1][i] = prices[i] - dp[0][i]return max(dp[1])

使用滚动数组思想优化


class Solution:def maxProfit(self, prices: List[int]) -> int:min_price, profit = sys.maxsize, 0for price in prices:min_price = min(min_price, price)profit = max(profit, price - min_price)return profit

http://www.ppmy.cn/devtools/122986.html

相关文章

Caffeine Cache基础入门

Caffeine Cache基础入门 Caffeine Cache 以其高性能和可扩展性赢得「 本地缓存之王 」的称号&#xff0c;它是一个 Java 缓存库。 Spring Boot 1.x 版本中的默认本地缓存是 Guava Cache。但在 Spring5 &#xff08;SpringBoot 2.x&#xff09;后&#xff0c;Spring 官方放弃了…

Golang | Leetcode Golang题解之第451题根据字符出现频率排序

题目&#xff1a; 题解&#xff1a; func frequencySort(s string) string {cnt : map[byte]int{}maxFreq : 0for i : range s {cnt[s[i]]maxFreq max(maxFreq, cnt[s[i]])}buckets : make([][]byte, maxFreq1)for ch, c : range cnt {buckets[c] append(buckets[c], ch)}an…

无人机视角垃圾检测数据集,26700余张无人机图像,超过4万标注信息,共3.6GB数据量,可用于环卫快速检查,垃圾快速定位等应用。

无人机视角垃圾检测&#xff0c;26700余张无人机图像&#xff0c;超过4万标注信息&#xff0c;共3.6GB数据量&#xff0c;可用于环卫快速检查&#xff0c;垃圾快速定位等应用。 名称 无人机视角垃圾检测数据集 规模 图像数量&#xff1a;26700余张标注信息&#xff1a;超过4…

HT338 2x50W D类立体声音频功放

1 特性 ● 输出功率(BTL) 2x40W (VDD18V,RL4Ω, THDN10%) 2x50W(VDD24V.RL6Ω,THDN10%) 2x40W(VDD24V,RL8Ω, THDN10%) ● 输出功率(PBTL模式) 80W(VDD24V,RL4Ω,THDN10%) 100W(VDD24VRL3Ω,THDN10%) ● 单电源系统&#xff0c;4.5V-26V宽电压输入范围 ● 超过90%效率&#xf…

上海交通大学《2022年+2023年816自动控制原理真题》 (完整版)

本文内容&#xff0c;全部选自自动化考研联盟的&#xff1a;《上海交通大学816自控考研资料》的真题篇。后续会持续更新更多学校&#xff0c;更多年份的真题&#xff0c;记得关注哦~ 目录 2022年真题 2023年真题 Part1&#xff1a;2022年2023年完整版真题 2022年真题 2023年…

全网都在找的Python生成器竟然在这里!简单几步,让你的代码更简洁、更高效!

博客主页&#xff1a;长风清留扬-CSDN博客系列专栏&#xff1a;Python基础专栏每天更新大数据相关方面的技术&#xff0c;分享自己的实战工作经验和学习总结&#xff0c;尽量帮助大家解决更多问题和学习更多新知识&#xff0c;欢迎评论区分享自己的看法感谢大家点赞&#x1f44…

插槽slot在vue中的使用

介绍 在 Vue.js 中&#xff0c;插槽&#xff08;slot&#xff09;是一种用于实现组件内容分发的功能。通过插槽&#xff0c;可以让父组件在使用子组件时自定义子组件内部的内容。插槽提供了一种灵活的方式来组合和复用组件。 项目中有很多地方需要调用一个组件&#xff0c;比…

国庆练习(Day24)

作业一 数组练习 选择题 1.1、若有定义语句&#xff1a;int a[3][6]; &#xff0c;按在内存中的存放顺序&#xff0c;a 数组的第10个元素是 a[0][4] B) a[1][3] C)a[0][3] D)a[1][4] 解析&#xff1a; 从 a[0][0] 开始…