leetcode每日一题·买卖股票问题(Python)

leetcode每日一题·买卖股票问题(Python)

买卖股票的最佳时机(股票最大利润)

题目链接
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。

暴力法

直接遍历两次,记录最大利润

class Solution:def maxProfit(self, prices: List[int]) -> int:max = 0for key,val in enumerate(prices):for j in prices[key+1:]:if j-val > max:max = j- valreturn max

执行代码可以通过,但是提交后报超时错误

一次遍历

一次遍历的思路为:遍历一遍数组,计算每次到当天为止的最小股票价格和最大利润。

class Solution:def maxProfit(self, prices: List[int]) -> int:minprice = float('inf')maxprofit = 0for price in prices:minprice = min(minprice, price)maxprofit = max(maxprofit, price - minprice)return maxprofit

买卖股票的最佳时机II

在买卖股票的最佳时机的基础上的升级版。
题目链接
给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

贪心算法

利用贪心算法,进行一次遍历,只要今天价格小于明天价格就在今天买入然后明天卖出,时间复杂度O(n)。

# 贪心算法,一次遍历o(n)
class Solution:def maxProfit(self, prices: List[int]) -> int:# 只要是第二天比第一天大就卖出ans = 0for i in range(1,len(prices)):if prices[i] > prices[i-1]:ans = ans + prices[i] - prices[i-1]return ans 

动态规划

DP动态规划,第i天只有两种状态,不持有或持有股票,当天不持有股票的状态可能来自昨天卖出或者昨天也不持有,同理,当天持有股票的状态可能来自昨天买入或者昨天也持有中,取最后一天的不持有股票状态就是问题的解。
这个方法没有学过DP的可能会理解起来比较困难,但是后边的两道升级版也要在这个基础上进行解决。

# 动态规划算法,一次遍历o(n)
class Solution:def maxProfit(self, prices: List[int]) -> int:if not prices:return 0n = len(prices)dp = [[0] * 2 for _ in range(n)]# dp[i][0]表示第i天不持有股票,dp[i][1]代表第i天持有股票dp[0][0], dp[0][1] = 0, -prices[0]for i in range(1, n):dp[i][0] = max(dp[i-1][0], dp[i-1][1] + prices[i])dp[i][1] = max(dp[i-1][1], dp[i-1][0] - prices[i])return dp[n-1][0]

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/40976.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【题解】股票买卖

题目描述 最近越来越多的人都投身股市,阿福也有点心动了。谨记着“股市有风险,入市需谨慎”,阿福决定先来研究一下简化版的股票买卖问题。 假设阿福已经准确预测出了某只股票在未来N天的价格,他希望买卖两次,使得获得的…

一道关于股票买卖的算法编程题

前段时间在segmentfault回答了一个关于算法的问题,感觉很有趣,记录下来. 题目是这样的: 给定数组n,包含n天股票的价格price. 一个人一共最多可以买2手股票,但在第一手股票卖出前不能买入第二手股票。如果不买,收益为0.假设每手只买1股。计算…

股票买卖题型 详解

股票买卖题型 买卖股票最佳时机 ​ 第一题贪心算法应该快很多 就 不讲 。 此类问题 思路大致一致 ​ 第二题也可用贪心做 ans max(ans, ansprices[i]-prices[i-1]); 分析: 共有两个属性值 , 未持有 和持有股票 定义 f[ i ] [ 2 ] f[ i ] [ 0 ]表示 第…

【算法题】股票买卖问题解法详解

本解法是股票问题的通用解法,在leetcode上对应以下题: 买卖股票的最佳时机 买卖股票的最佳时机 II 买卖股票的最佳时机 III 买卖股票的最佳时机 IV 买卖股票的最佳时机含手续费 最佳买卖股票时机含冷冻期 下面来说通用解法: 这类问题…

贪心算法(股票买卖例题)

贪心算法定义: 贪心算法(又称贪婪算法)是指,在对 问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部 最优解。 贪心算法不是对所有…

买卖股票的最佳时机 II -数学推导证明贪心思路 -leetcode122

问题说明来源leetcode 一、问题描述: 122. 买卖股票的最佳时机 II 难度中等1941 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可…

产品开发利器:Axure及实例

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情 文章目录 简介Axure优点Axure和蓝湖Axure实例 简介 Axure是一个最便捷、最热门的界面原型设计工具,它不需要任何编程或写代码基础,就可以设…

ChatGPT伪原创:智能AI助手助力文章创作

智能AI助手助力文章创作 随着人工智能技术的不断发展,智能AI助手正逐渐成为文章创作的得力工具。无论是在写作过程中提供灵感和创意,还是在文章编辑和校对中提供帮助,智能AI助手都能为作者节省时间和精力,提高文章质量。本文将从…

2022年度强化学习领域19个重要进展汇总

本文汇总梳理了2022年度,强化学习领域的发展重大事件、以及落地应用等方向中突出代表,整理难免带有个人观点,欢迎大家一起讨论。本文整理自“深度强化学习实验室”公众号,阅读原文请点击这里。 【1】MIT强化学习新算法EIPO&#…

分割一切?手把手教你部署SAM+LabelStudio实现自动标注

一,前言 最近Open-mmlab开源了Playground项目,将最近引起CV界轰动的SAM(Segment Anything Model)模型和Open-mmlab多个视觉框架相结合,可实现多种视觉任务的自动标注,本文将采用Open-mmlab的Playground开源项目,使用S…

老婆饼真有老婆,驴肉火烧有头驴--文言一心

困扰大家很久的问题:老婆饼里为啥没老婆,鱼香肉丝里为啥没有鱼。 最近,百度推出自己的AI大模型“文心一言”,李彦宏在发布会上表示,目前百度是全球大厂中第一个做出对标ChatGPT产品的企业。 有网友让文心一言作画&…

【2023,学点儿新Java-15】案例分享:基于Java实现餐厅点餐系统(附完整源代码)

前情回顾: 【2023,学点儿新Java-14】携程面试题:如何看待Java是一门半编译半解释型的语言?| 咨询互联网行业 资深前辈的一些问题 | 附:为什么说ChatGPT的核心算法是…?| GPT-3.5【2023,学点儿新…

文心一言作画:有点东西但不多...

随着ChatGPT的持续火热 与AI领域有关的话题 是越来越热闹了 前几天百度发布 “文心一言” 自然也成了网友们 重点关注的对象 不过大家的目光主要还是集中在 文心一言的绘画功能上 在人工智能加成下出来的画面 一个比一个绝 成功颠覆 大家对绘画的认知 生意火爆的商铺…

网传文心一言的魔性作图,有点被吓到...

来源:菜鸟教程 近日看到网友们用百度文心一言来作图,看了后我都愣住了。。。 1、AI 作画 -- 车水马龙 2、AI 作画 -- 驴肉火烧 3、AI 作画 -- 唐伯虎点秋香 4、AI 作画 -- 鱼香肉丝 5、AI 作画 -- 胸有成竹 6、AI 作画 -- 夫妻肺片 7、AI 作画 -- 红烧狮…

文心一言的魔性作图,我愣住了。。。

点关注公众号,回复“1024”获取2TB学习资源! 最近,百度推出自己的AI大模型“文心一言”,李彦宏在发布会上表示,目前百度是全球大厂中第一个做出对标 ChatGPT 产品的企业。 但是,今天看到网友们用它来作图&a…

那些在学习GPT的过程中学到的

1、大模型是什么 GPT横空出世之后,大模型火了,什么是大模型呐? 大模型通常指的是具有大规模参数和复杂结构的深度学习模型。它们的设计和结构可以因任务而异,但以下是一些常见的大模型结构: Transformer&#xff1a…

LangChain 介绍及相关组件使用总结

一、langChain LangChain 是一个由语言模型LLMs驱动的应用程序框架,它允许用户围绕大型语言模型快速构建应用程序和管道。 可以直接与 OpenAI 的 ChatGPT 模型以及 Hugging Face 集成。通过 langChain 可快速构建聊天机器人、生成式问答(GQA)、本文摘要等应用场景。…

第一代AIGC硬件悄然爆发

文 | 智能相对论 作者 | 叶远风 看起来,这可能是一副正常的黑框眼镜,你戴上去彬彬有礼、斯斯文文; 实际上,它里边还装了一个“小伙伴”,你随时可以与它交流,谈天说地或者提出各种问题接受它的帮助&#x…

chatgpt赋能python:小黑框:Python程序员必备利器

小黑框:Python程序员必备利器 如果您是一名Python程序员,小黑框(Terminal)一定不陌生。小黑框是一种基于文本的用户界面,通常用于执行命令行任务,编写或调试代码等。Python程序员可以通过小黑框完成许多任…

游戏开发中防外挂的那些事儿

对于一个要上线的游戏,防外挂是必须的,历史上因为外挂而造成大量玩家流失的游戏数不胜数。随着游戏研发技术的发展,对外挂的预防业内其实做的已经越来越好了。下面总结一下防外挂的基础知识,以及我们的移动模块为防外挂做了哪些工…