class Solution:
"""
121. 买卖股票的最佳时机
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。
"""
def maxProfit(self, prices: List[int]) -> int:
# 思路:遍历每一项时,计算当前值和历史价格最低值之差, 并更新最大之差;同时更新历史最低值
# 1. 初始化及特殊处理
n = len(prices)
ans, minPrice = 0, prices[0]
# 2. 遍历
for i in range(n):
ans = max(ans, prices[i]-minPrice)
minPrice = min(minPrice, prices[i])
# 3. 返回结果值
return ans
相关推荐
全志T507平台I²C总线三阶段操作:从U-Boot到应用层的嵌入式开发实践
I²C总线作为一种广泛应用的串行通信协议,以其简洁的两线制设计和灵活的多主多从架构,在嵌入式系统中扮演着连接传感器、存储芯片等外设的关键角色。其工作原理基于主从设备间的时钟同步与数据帧传输,通过独特的地址寻址机制实现多设备共享总线。这一技术价值在于为资源受限的嵌入式环境提供了高效、标准化的外设管理方案,广泛应用于消费电子、工业控制和物联网设备中。在系统启动早期阶段操作I²C设备是嵌入式开发中的常见需求,例如在U-Boot阶段初始化温度传感器或音频编解码芯片。本文基于全志T507平台和Linux 4.9内核,
股价翻番 人生赢家,python爬取基金 筛选股票
前言: 听说你想要变富?那就沉住气慢慢来吧,没听过这句名言么:“穷人总是不想慢慢的变富”。都想着一夜暴富,中个彩票啥的,可哪有那么幸运呢?总不能像我一样中了78万的彩票,然后自己偷偷的花吧。 想要慢慢的变富有,只要理好财就可以了;小钱靠攒,大钱靠赚!之前我也曾苦于思索如何让自己实现财富自由,所以才有了学习理财的想法,说到理财就不得不说一些理财产品,比如黄金、期货、股票、基金等,先普及一下这些小...
python爬取沪深所有股票数据并生成Excel文件
爬取沪深所有股票数据并生成Excel文件 一、分析需求 1、对于沪深两市的各只股票,获取其:‘股票代码’, ‘股票名称’, ‘最高’, ‘最低’, ‘涨停’, ‘跌停’, ‘换手率’, ‘振幅’, '成交量’等信息; 2、将获取的信息存放在Excel文件中,股票信息属性作为表头,每只股票信息作为表格的一行,每个单元格存放一个信息。 #程序运行结果如下: 二、分析需求并设计算法 1、确定爬取的网站...
用Tushare获取A股所有股票历史数据
前面章节已经介绍了如何用Tushare调用A股个股的数据,但是在我们量化投资过程中,经常会需要用到全量数据(即所有A股的历史数据)。废话不多说,直接上代码。 以上就是获取历史上所有A股的历史数据的代码,代码运行后效果如下: 终端显示: 生成存储文件: 安装上述操作,我们便可获得所有A股历史数据。 ...............
LeetCode第121题_买卖股票的最佳时机
给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择买入这只股票,并选择在卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回0。
【经典算法】LeetCode 121. 买卖股票的最佳时机(Java/C/Python3实现含注释说明,Easy)
对比项一次遍历(贪心算法)动态规划解题思路每次选择当前状态下的最优解,不考虑未来的变化构建状态转移方程,逐步求解,保存中间结果适用场景局部最优选择能直接导致全局最优,如连续上涨的市场涉及多次买入卖出、考虑冷冻期、手续费等复杂情况空间复杂度O(1),较低,只需保存当前状态信息O(n),较高,需保存多个状态的最优解时间复杂度O(n), 较低,通常一次遍历即可O(n),较高,需遍历所有可能状态全局最优性保证不一定能保证全局最优解可以得到全局最优解灵活性较低,适用于简单直接的交易策略。
【刷题日记】买卖股票的最佳时机 I
题目要求计算在给定股票价格数组中的最大利润,只能进行一次买入和卖出操作。通过一次遍历法可以高效解决:维护两个变量,min_price记录历史最低价,max_profit记录当前最大利润。遍历时更新这两个变量,时间复杂度O(n),空间复杂度O(1)。动态规划方法思路类似,但需要额外空间存储中间结果。示例分析展示了算法执行过程,最终返回最大利润值。
LeetCode第122题_买卖股票的最佳时机II
给你一个整数数组prices,其中prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候只能持有股票。你也可以先购买,然后在出售。返回你能获得的利润。
121.买卖股票的最佳时机 python
这种方法的时间复杂度为 O(n),空间复杂度为 O(1),非常高效。解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。同时,由于只使用了有限的额外变量,空间复杂度也非常低。给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。输入:prices = [7,6,4,3,1]输入:[7,1,5,3,6,4]
leetcode热题100.买股票的最佳时机
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:示例 2:提示:1
LeetCode 力扣题目:买卖股票的最佳时机 IV
多种算法实现 LeetCode 力扣题目:买卖股票的最佳时机 IV
代码随想录算法训练营第四十一天 | 121. 买卖股票的最佳时机 , 122.买卖股票的最佳时机II , 123.买卖股票的最佳时机III
所以dp[4][4]已经包含了dp[4][2]的情况。那么第i天持有股票即dp[i][0],如果是第i天买入股票,所得现金就是昨天不持有股票的所得现金 减去 今天的股票价格 即:dp[i - 1][1] - prices[i]。同样dp[i][1]取最大的,dp[i][1] = max(dp[i - 1][1], prices[i] + dp[i - 1][0]);例如 dp[i][1] ,并不是说 第i天一定买入股票,有可能 第 i-1天 就买入了,那么 dp[i][1] 延续买入股票的这个状态。
【LeetCode 热题 100】121.买卖股票的最佳时机(一次遍历 + 贪心策略,附图解 + Python 实现)
本文详细解析了 LeetCode 热门面试题「121. 买卖股票的最佳时机」,通过贪心算法实现一次遍历即可求解。文章介绍了如何维护最低买入价和最大利润,并提供了 Python 代码实现。关键细节包括使用 float('inf') 初始化最小价格和贪心算法的局部最优策略。图解过程帮助理解算法执行步骤,测试用例验证了代码的正确性。复杂度分析表明该算法时间复杂度为 O(n),空间复杂度为 O(1),适合大规模输入。文章还推荐了相关扩展题目,帮助读者进一步掌握股票交易类问题的解法。总结指出,本题是贪心策略的经典案例
LeetCode 121.买卖股票的最佳时机(Python)
•。
力扣LeetCode121.买卖股票的最佳时机及Python源码实现
本题为LeetCode题库中第53题最大子序列求和,难度简单,题目请参考这里。 一道很简单的DP(Dynamic Programming)算法的题目,代码不难但思想需要考究如何找出动态规划中的转态方程,所以在这记录一下。 给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不...
LeetCode面试150——121买卖股票的最佳时机
LeetCode面试150——121买卖股票的最佳时机
LeetCode:买卖股票的最佳时机(1-3) - Python
121. Best Time to Buy and Sell Stock(买卖股票的最佳时机)问题描述:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买...
leetcode 121&122 买卖股票的最佳时机-python 暴力法+一次遍历+动态规划
文章目录一、题目LeetCode121解题思路方法1.暴力法方法2.一次遍历方法3.dp数组迭代求解二、题目LeetCode122解题思路方法3.dp数组迭代求解 提示:LeetCode121 ,买卖股票的最佳时机(简单): 提示:LeetCode122 ,买卖股票的最佳时机(中等): 一、题目LeetCode121 买卖股票的最佳时机(简单): 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一
364



被折叠的 条评论
为什么被折叠?



