当前位置: 首页 > news >正文

东莞市58同城招聘网最新招聘百度seo培训班

东莞市58同城招聘网最新招聘,百度seo培训班,wordpress左侧工具隐藏,厦门酒店团购网站建设❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航: LeetCode解锁100…

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣!

  • 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注
    在这里插入图片描述

  • 导航

    • LeetCode解锁1000题: 打怪升级之旅:每题都包括3-5种算法,以及详细的代码实现,刷题面试跳槽必备
    • 漫画版算法详解:通过漫画的形式和动态GIF图片把复杂的算法每一步进行详细可视解读,看一遍就掌握
    • python源码解读:解读python的源代码与调用关系,快速提升代码质量
    • python数据分析可视化:企业实战案例:企业级数据分析案例与可视化,提升数据分析思维和可视化能力
    • 程序员必备的数学知识与应用:全面详细的介绍了工程师都必备的数学知识

期待与您一起探索技术、持续学习、一步步打怪升级 欢迎订阅本专栏❤️❤️

题目描述

在《买卖股票的最佳时机 II》这个问题中,你拥有一个数组,其中第 i 个元素是第 i 天给定股票的价格。你可以尽可能进行多次的买卖交易(即买一次和卖一次构成一对交易)。然而,你不能同时参与多笔交易(你必须在再次购买之前出售掉之前的股票)。

任务是设计一个算法来找出最大利润。你需要考虑在哪些日子买入和卖出能够获得最大利润。

示例

给定价格数组 [7,1,5,3,6,4],最大利润计算方式如下:

  1. 在价格为1时买入,在价格为5时卖出,利润为4。
  2. 在价格为3时买入,在价格为6时卖出,利润为3。

因此,总利润为4 + 3 = 7。

注意,你不能在买入股票的同一天卖出,也不能在买入之前卖出股票。你的目标是最大化总利润。

方法一:贪心算法

解题步骤

  1. 初始化总利润为0。
  2. 遍历价格数组,从第一天到最后一天。
  3. 对于每一天,如果当天的价格比前一天高,计算这两天的利润并累加到总利润中。
  4. 最后返回总利润。

Python 示例

def maxProfit(prices):total_profit = 0for i in range(1, len(prices)):if prices[i] > prices[i - 1]:total_profit += prices[i] - prices[i - 1]return total_profit

算法分析

时间复杂度:O(n),其中 n 是价格数组的长度,因为我们需要遍历整个数组。
空间复杂度:O(1),只需要常数的空间来存储利润等变量。

算法图解

价格数组: [7, 1, 5, 3, 6, 4]
利润计算:
- 买入 1,卖出 5,利润 4
- 买入 3,卖出 6,利润 3
总利润: 4 + 3 = 7

方法二:动态规划

解题步骤

  1. 创建两个列表,cash 和 hold,其中 cash[i] 表示第 i 天结束时手上没有股票的最大利润,hold[i] 表示第 i 天结束时手上持有股票的最大利润。
  2. 初始化 cash[0] = 0 和 hold[0] = -prices[0]。
  3. 遍历从第 1 天到最后一天,更新 cash 和 hold 的值:
    • cash[i] = max(cash[i-1], hold[i-1] + prices[i])
    • hold[i] = max(hold[i-1], cash[i-1] - prices[i])
  4. 最后,cash[-1] 将是最大利润。

Python 示例

def maxProfit(prices):if not prices:return 0n = len(prices)cash, hold = [0] * n, [0] * nhold[0] = -prices[0]for i in range(1, n):cash[i] = max(cash[i-1], hold[i-1] + prices[i])hold[i] = max(hold[i-1], cash[i-1] - prices[i])return cash[-1]

算法分析

时间复杂度:O(n),我们只需要遍历一次股价数组。
空间复杂度:O(n),我们需要额外的空间来存储过程中的状态。

算法图解

价格数组: [7, 1, 5, 3, 6, 4]
cash: [0, 0, 4, 4, 7, 7]
hold: [-7, -1, -1, -1, -1, -1]
最终最大利润: 7

应用示例

如果给定一个价格数组 [7, 1, 5, 3, 6, 4],使用上述任一方法,你都能得到最大利润7。这表明无论是采用贪心策略还是动态规划方法,都可以有效地解决问题。

🌹🌹如果觉得这篇文对你有帮助的话,记得一键三连关注、赞👍🏻、收藏是对作者最大的鼓励,非常感谢 ❥(^_-)

❤️❤️作者知识有限,如有错误,请各位大佬评论区批评指正,不胜感激❥(^_-)
在这里插入图片描述

http://www.hengruixuexiao.com/news/6918.html

相关文章:

  • 手机网站建设 广州免费网络推广网址
  • 万网网站空间费中国最新消息
  • 专业的营销网站建设公司排名搜索图片识别出处百度识图
  • 哪家公司建网站最好2022年大事热点新闻
  • 青岛公司做网站网站推广的目的
  • 邢台做移动网站公司电话社交媒体营销三种方式
  • 织梦做的网站后台百度资源
  • 网站详情页链接怎么做哪家网站推广好
  • 基于诗歌网站开发开题报告大连网站建设
  • 门头沟石家庄网站建设地推拉新app推广接单平台
  • 毕业设计做网站做不出域名备案查询
  • 郑州网站建设公司代运营品牌营销咨询公司
  • 成都企业名录公司seo
  • 百度工具网站改版淘宝运营主要做些什么
  • seo整站优化公司持续监控天津最新消息今天
  • 阳狮做网站杭州网站推广公司
  • 长春做网站企业网站报价
  • destoon做的网站百度推广免费
  • 重庆哪家做网站seo资料网
  • 做电影网站需要注意什么东西搜索引擎优化分析报告
  • 建设网站实施条件网络营销策划方案ppt模板
  • 蓝色经典通用网站模板搜索引擎推广有哪些
  • jsp做的网站如何查看dz论坛seo设置
  • python做网站还是java长沙seo男团
  • 深圳公司网站建设公司西安seo优化推广
  • 石做视频网站需要牌照合肥360seo排名
  • 搜索引擎优化论文3000字百度推广优化排名
  • 郑州个人网站建设公司排行榜百度站长平台登录
  • 做自己的网站需要什么百度公司招聘
  • 腾讯云网站建设视频网站建设技术外包