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

网站哪里有网站布局规范

网站哪里有,网站布局规范,智慧旅游平台建设方案,阿里云做的网站空间dp dp元素代表最大利润 f[j][1] 代表第 j 次交易后持有股票的最大利润。在初始状态,持有股票意味着你花钱买入了股票,此时的利润应该是负数(扣除了买入股票的成本),而不是 0。所以,把 f[j][1] 初始化为负…

dp

dp元素代表最大利润

f[j][1] 代表第 j 次交易后持有股票的最大利润。在初始状态,持有股票意味着你花钱买入了股票,此时的利润应该是负数(扣除了买入股票的成本),而不是 0。所以,把 f[j][1] 初始化为负无穷大

f[j][0] 表示第 j 次交易完成后未持有股票的最大利润。当还未开始进行任何有效的股票买卖操作时,也就是处于初始状态,此时没有持有股票且利润为 0 

所以有了如下初始化

for (int j = 0; j < k + 2; j++) {for (int l = 0; l < 2; l++) {f[j][l] = Double.NEGATIVE_INFINITY;}}
// 初始化状态,第 j 次交易未持有股票时利润为 0for (int j = 1; j < k + 2; j++) {f[j][0] = 0;
}

 

因为可以交易0~k次,一共k+1种选择,而i = 0时,状态转移会出现i=-1的dfs,所以要开辟k+2个空间,而我们实际填写k+1种

因为数组不能有-1的索引,所以整体偏移,用0代表-1,1代表0.所以j<0而不是j<=0

import java.util.List;public class StockTrading {public int maxProfit(List<Integer> prices) {// 最多允许的交易次数int k = 2;// 初始化动态规划数组 fdouble[][] f = new double[k + 2][2];for (int j = 0; j < k + 2; j++) {for (int l = 0; l < 2; l++) {f[j][l] = Double.NEGATIVE_INFINITY;}}// 初始化状态,第 j 次交易未持有股票时利润为 0for (int j = 1; j < k + 2; j++) {f[j][0] = 0;}// 遍历每一天的股票价格for (int i = 0; i < prices.size(); i++) {int p = prices.get(i);// 从后往前更新状态for (int j = k + 1; j > 0; j--) {// 更新第 j 次交易未持有股票的最大利润f[j][0] = Math.max(f[j][0], f[j][1] + p);// 更新第 j 次交易持有股票的最大利润f[j][1] = Math.max(f[j][1], f[j - 1][0] - p);}}// 返回最终结果,即最后一次交易未持有股票的最大利润return (int) f[f.length - 1][0];}
}

有冷冻期

修改状态转移方程

因为卖出的股票不能是前一天买入的了,所以不能-1要用合理时间的股票  

交易次数必须为2

只需要不断维护两次交易的利润即可,不需要记录全部交易的利润

这里不用开辟k+2的空间了,因为规定必须交易两次,所以状态转移方程没有变量了,而是具体的1和2,就不会出现-1的情况

import java.util.List;public class StockTrading {public int maxProfit(List<Integer> prices) {// 交易次数必须为2次int k = 2;// 初始化动态规划数组 f// f[j][0] 表示第 j 次交易未持有股票的最大利润// f[j][1] 表示第 j 次交易持有股票的最大利润int[][] f = new int[k + 1][2];// 初始化状态for (int j = 1; j <= k; j++) {f[j][0] = Integer.MIN_VALUE; // 初始时,未持有股票的利润为最小整数f[j][1] = Integer.MIN_VALUE; // 初始时,持有股票的利润为最小整数}f[0][0] = 0; // 第0次交易未持有股票的利润为0// 遍历每一天的股票价格for (int i = 0; i < prices.size(); i++) {int p = prices.get(i);// 更新第 2 次交易的状态f[2][0] = Math.max(f[2][0], f[2][1] + p); // 第 2 次交易未持有股票f[2][1] = Math.max(f[2][1], f[1][0] - p); // 第 2 次交易持有股票// 更新第 1 次交易的状态f[1][0] = Math.max(f[1][0], f[1][1] + p); // 第 1 次交易未持有股票f[1][1] = Math.max(f[1][1], -p); // 第 1 次交易持有股票}// 返回最终结果,即第 2 次交易未持有股票的最大利润// 如果无法完成两次交易,返回 0 或其他特殊值return Math.max(f[2][0], 0); // 确保不会返回负值}
}

网课:买卖股票的最佳时机【基础算法精讲 21】_哔哩哔哩_bilibili


文章转载自:

http://LfB4MJy3.Lbhck.cn
http://cvU3m81j.Lbhck.cn
http://jNGjswwl.Lbhck.cn
http://vGVSwEmN.Lbhck.cn
http://ZOh3UpQq.Lbhck.cn
http://FoAsgKef.Lbhck.cn
http://FgK8kGYF.Lbhck.cn
http://FtBGBV6O.Lbhck.cn
http://28YcHY59.Lbhck.cn
http://ojKxntZt.Lbhck.cn
http://g8LpuvPr.Lbhck.cn
http://LzwKzUqI.Lbhck.cn
http://iBU3PLs3.Lbhck.cn
http://j3X8LMAL.Lbhck.cn
http://0hibucE9.Lbhck.cn
http://ZYmQ9MHW.Lbhck.cn
http://5jvWtxuG.Lbhck.cn
http://wzpdbQbn.Lbhck.cn
http://1jcuS3hm.Lbhck.cn
http://SWZP7hyo.Lbhck.cn
http://dWawLF63.Lbhck.cn
http://LCTfbohU.Lbhck.cn
http://QdI9YNNM.Lbhck.cn
http://zWWVztgy.Lbhck.cn
http://yTpVrSL7.Lbhck.cn
http://8TUjm3qh.Lbhck.cn
http://jpGXMdmh.Lbhck.cn
http://dJZKaWq4.Lbhck.cn
http://YaVBfPpf.Lbhck.cn
http://M8zDaiNM.Lbhck.cn
http://www.dtcms.com/wzjs/692560.html

相关文章:

  • 金融网站模板素材加快建设乡镇招商网站
  • 白百度一下你就知道搜索引擎优化方法总结
  • 静态手机网站建设的基本特点无锡制作网站价格表
  • 新乡市建设路小学网站专做脚本的网站
  • 做足球经理头像的网站wordpress 萌主题下载
  • 网站建设捌金手指下拉二五慈溪做网站
  • wordpress 建站插件软件开发中需要哪些可行性分析
  • 网站建设有趣名称知乎广告代理商
  • 网站建设包括内容怎么卸载wordpress
  • 网站建设的电话回访长春城投建设投资有限公司网站
  • 网站做网站做任务做网站推广要注意的事项
  • 网站开发人员是什么南宁市有哪些做网站的外包企业
  • 专做奢侈品品牌的网站买的网站模板怎么上传
  • 初学网站开发书籍做网站 怎么选择公司
  • 更改网站模板内容电商网站建设源代码
  • 网站开发攻略英山建设银行网站
  • 怎么自己建设网站宁波网站网站建设
  • 中国住房城乡建设部官方网站东阿网站建设价格
  • 宁波电器网站制作做公司月刊网站
  • 程序员做项目网站区块链媒体网站建设
  • 网站的优点有哪些关键词优化怎样
  • 查看网站空间大小网站制作公司业务员
  • 人力资源管理咨询亚马逊网站 如何做站内seo
  • 做网站是前端还是后端网站到期可以续费
  • 乐清网站设计制作网络课程网站建设
  • 青海省住房和建设厅网站wordpress没有图片不显示
  • 一个网站数据库在线视频网站开发成本
  • 宁夏网站建站五莲县网站建设
  • 手机网站建设经典教程查询公司的网站
  • 银川网站建设公司电话安徽平台网站建设费用