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

上海徐家汇网站建设天津优化公司

上海徐家汇网站建设,天津优化公司,乐清网站制作公司,做汽车保养的网站上清晰明了的思路是解决问题的至上法宝。如何把一个复杂的问题拆成简单的问题,就是我们需要考虑的。 1. 题目 2. 思想 这道题虽然是难题,但是思想比较简单。 题目要求说至多买卖两次,也就是说,也可以买卖一次,这种情况…

清晰明了的思路是解决问题的至上法宝。如何把一个复杂的问题拆成简单的问题,就是我们需要考虑的。

1. 题目

在这里插入图片描述

2. 思想

这道题虽然是难题,但是思想比较简单。

题目要求说至多买卖两次,也就是说,也可以买卖一次,这种情况之前有分析过,比较简单。那么我们就着重看下买卖两次是怎么获取最大收益。

买卖两次那么就必须从中间某一天分割开。比如题中的样例[3,3,5,0,0,3,1,4],相当于拆成了[3,3,5] [,0,0,3,1,4] 两部分,再求两个小区间的最大值即可。也就是说,需要找出一个分割点,然后使得分割点左侧的钱卖出赚的钱 + 分割点右侧区间卖出赚的钱 最多即可。那么接下来就是计算分割点左侧区间的钱,和分割点右侧区间卖出可以赚的钱。这个计算比较简单,就是直接遍历然后迭代更新出最大值即可。

需要注意的是,买卖两次有时候不如买卖一次赚的钱多,所以最后,需要一起判断最大值是多少。

3. 代码

class Solution:def maxProfit(self, prices: List[int]) -> int:dp_left = [0] * len(prices)dp_right = [0] * len(prices)cur_min = prices[0]for i in range(1,len(prices)):dp_left[i] = max(dp_left[i-1], prices[i] - cur_min)cur_min = min(cur_min, prices[i])print(dp_left)cur_max = prices[-1]for i in reversed(range(len(prices)-1)):dp_right[i] = max(dp_right[i+1], cur_max - prices[i] )cur_max = max(cur_max, prices[i])print(dp_right)res = 0for i in range(1, len(prices)-1):res = max(res,dp_left[i] + dp_right[i+1] )return max(res, dp_left[-1], dp_right[0])
http://www.mmbaike.com/news/78162.html

相关文章:

  • 高邮市建设网站网站改版
  • 个人做网站靠什么挣钱获取排名
  • 南京做网站南京乐识专业昆明seo排名
  • 网站建设具体方案深圳市seo上词多少钱
  • python做的网站网络服务提供者收集和使用个人信息应当符合的条件有
  • 品牌建设网站有哪些互联网营销师国家职业技能标准
  • 虎门专业网站建设太原seo关键词排名
  • 做网站参考线怎么拉水果店推广营销方案
  • 网站开发都是模板深圳网站设计小程序
  • 33岁改行做网站建设新网站快速排名软件
  • 海外培训视频网站建设智能优化大师下载
  • 网站电子签名怎么做百度网盘登陆入口
  • 长春网站建设翻译seo综合查询工具可以查看哪些数据
  • 帮客户做网站挣钱吗网络营销的模式有哪些?
  • 许昌市做网站汉狮网络优化关键词排名哪家好
  • 2015网站设计风格深圳百度seo整站
  • 广州网站设计网站制作百度搜索指数1000是什么
  • 潍坊网站建设推广报价百度爱采购怎样入驻
  • 那些网站是做金融行业长沙seo外包服务
  • 带icp备案的网站杭州今天查出多少阳性
  • 长沙网站设计流程百度定位店铺位置怎么设置
  • 山东潍坊疫情最新消息长沙网站优化推广方案
  • 有什么教人做论文的网站吗重庆网站推广专家
  • 鄂州做网站目前在哪个平台做推广好
  • 上海网站建设口碑好百度seo标题优化软件
  • 自己做网站平台需要服务器楚雄今日头条新闻
  • web网站开发是什么意思网络营销好不好
  • 网站的建设模式是指什么时候开始中国职业技能培训中心官网
  • 旅游网站首页模板网上永久视频会员是真的吗
  • 网站备案哪个部门seo是免费的吗