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

甜蜜高端定制网站安徽省住房与城乡建设网站

甜蜜高端定制网站,安徽省住房与城乡建设网站,网站建设结构设计方案,搜索引擎优化涉及的内容LeetCode 122 买卖股票的最佳时机 II 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回…

LeetCode 122 买卖股票的最佳时机 II

给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。
在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。
返回 你能获得的 最大 利润 。

问题转换 + 贪心

只要明天比今天价格高就在今天买入明天卖出,吃掉所有收益一定能达成题意要求的收益

class Solution:def maxProfit(self, prices: List[int]) -> int:res = 0if len(prices) == 1:return resfor i in range(1, len(prices)):tmp = prices[i] - prices[i - 1]res += (tmp if tmp > 0 else 0)return res

动态规划

下面网友写的题解十分精彩,从状态转移方程可以看出计算i只需i-1,可以进行滚动优化

作者:liweiwei1419
链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/solutions/38498/tan-xin-suan-fa-by-liweiwei1419-2/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

第 1 步:定义状态

状态 dp[i][j] 定义如下:

dp[i][j] 表示到下标为 i 的这一天,持股状态为 j 时,我们手上拥有的最大现金数。

注意:限定持股状态为 j 是为了方便推导状态转移方程,这样的做法满足 无后效性。

其中:

第一维 i 表示下标为 i 的那一天( 具有前缀性质,即考虑了之前天数的交易 );
第二维 j 表示下标为 i 的那一天是持有股票,还是持有现金。这里 0 表示持有现金(cash),1 表示持有股票(stock)。

第 2 步:思考状态转移方程

状态从持有现金(cash)开始,到最后一天我们关心的状态依然是持有现金(cash);
每一天状态可以转移,也可以不动。状态转移用下图表示:
在这里插入图片描述
(状态转移方程写在代码中)

说明:

由于不限制交易次数,除了最后一天,每一天的状态可能不变化,也可能转移;
写代码的时候,可以不用对最后一天单独处理,输出最后一天,状态为 0 的时候的值即可。

第 3 步:确定初始值

起始的时候:

如果什么都不做,dp[0][0] = 0;
如果持有股票,当前拥有的现金数是当天股价的相反数,即 dp[0][1] = -prices[i];

第 4 步:确定输出值

终止的时候,上面也分析了,输出 dp[len - 1][0],因为一定有 dp[len - 1][0] > dp[len - 1][1]。

public class Solution {public int maxProfit(int[] prices) {int len = prices.length;if (len < 2) {return 0;}// 0:持有现金// 1:持有股票// 状态转移:0 → 1 → 0 → 1 → 0 → 1 → 0int[][] dp = new int[len][2];dp[0][0] = 0;dp[0][1] = -prices[0];for (int i = 1; i < len; i++) {// 这两行调换顺序也是可以的dp[i][0] = Math.max(dp[i - 1][0], dp[i - 1][1] + prices[i]);dp[i][1] = Math.max(dp[i - 1][1], dp[i - 1][0] - prices[i]);}return dp[len - 1][0];}
}

复杂度分析:

时间复杂度:O(N),这里 N 表示股价数组的长度;
空间复杂度:O(N),虽然是二维数组,但是第二维是常数,与问题规模无关。

http://www.yayakq.cn/news/931771/

相关文章:

  • 网站建设企业号助手nas wordpress备案
  • php网站开发试卷建立自己的网站平台
  • 本地服务器网站建设品牌推广方案设计
  • 太原网站制作策划软件技术适合女生学吗大专
  • 做兼职的设计网站有哪些工作在线看网站建设
  • 淘宝详情页做的比较好的网站免费咨询产科医生
  • 建站工作室 网站建设工作室个人网站模板之家
  • 网页设计网站官网怎么做付款链接网站
  • 大型网站建设用什么系统好如何做Google外贸网站
  • 学校网站建设总结制作html5网站
  • 石家庄企业建站哪家好漳州城乡住房建设部网站
  • 网站主流服务器语言架设网站服务器
  • 长沙做网站公司 上联网络网站认证方式
  • 网站建设一般的长宽服务器架构做网站
  • 做商城网站服务器没有网怎么装wordpress
  • 郑州众诚建设监理有限公司网站商标注册证电子版查询
  • 清溪东莞网站建设常州小型网站建设
  • 做饼的网站wordpress 链接
  • 平面设计提高审美网站广州高端网站制作公司哪家好
  • h5自适应网站模板下载流线型的网站建设
  • 网站底部 设计yellow片免费观看
  • 鞋材东莞网站建设相机网站建设策划书
  • 建网站一定要备案吗wordpress获取文字
  • 什么网站的图片可以做商用自己如何制作动漫短视频
  • 郑州金水区做网站公司html5教程下载百度云
  • 网站后台 网站页面没有显示新人怎么做跨境电商
  • 网站建设 甘肃有哪些网站是可以做宣传的
  • 网站改版汇报网站建设皖icp
  • 网站如何解除绑定域名手机上编写app
  • 苏州园区两学一做网站wordpress dux主题5.0版本