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

燕郊做网站海淀区seo多少钱

燕郊做网站,海淀区seo多少钱,太平洋手机官网,景区微网站建设费用随想录日记part40 t i m e #xff1a; time#xff1a; time#xff1a; 2024.04.10 主要内容#xff1a;今天开始要学习动态规划的相关知识了#xff0c;今天的内容主要涉及#xff1a; 买卖股票的最佳时机加强版。 123.买卖股票的最佳时机III 188.买卖股票的最佳时机…随想录日记part40 t i m e time time 2024.04.10 主要内容今天开始要学习动态规划的相关知识了今天的内容主要涉及 买卖股票的最佳时机加强版。 123.买卖股票的最佳时机III 188.买卖股票的最佳时机IV 动态规划五部曲 【1】.确定dp数组以及下标的含义 【2】.确定递推公式 【3】.dp数组如何初始化 【4】.确定遍历顺序 【5】.举例推导dp数组 Topic1买卖股票的最佳时机||| 思路 接下来进行动规五步曲 1.确定dp数组以及下标的含义: 一天一共就有五个状态 0.没有操作 其实我们也可以不设置这个状态1.第一次持有股票2.第一次不持有股票3.第二次持有股票4.第二次不持有股票 dp[i][j]中 i表示第i天j为 [0 - 4] 五个状态dp[i][j]表示第i天状态j所剩最大现金。 需要注意dp[i][1]表示的是第i天买入股票的状态并不是说一定要第i天买入股票这是很多同学容易陷入的误区。例如 dp[i][1] 并不是说 第i天一定买入股票有可能 第 i-1天 就买入了那么 dp[i][1] 延续买入股票的这个状态。 2.确定递推公式: 【达到dp[i][1]有两个操作】 操作一第i天买入股票了那么dp[i][1] dp[i-1][0] - prices[i] 操作二第i天没有操作而是沿用前一天买入的状态即dp[i][1] dp[i - 1][1] 那么dp[i][1]究竟选 dp[i-1][0] - prices[i]还是dp[i - 1][1]呢 一定是选最大的所以 dp[i][1] max(dp[i-1][0] - prices[i], dp[i - 1][1]); 【dp[i][2]也有两个操作】 操作一第i天卖出股票了那么dp[i][2] dp[i - 1][1] prices[i] 操作二第i天没有操作沿用前一天卖出股票的状态即dp[i][2] dp[i - 1][2] 所以dp[i][2] max(dp[i - 1][1] prices[i], dp[i - 1][2]) 同理可推出剩下状态部分 dp[i][3] max(dp[i - 1][3], dp[i - 1][2] - prices[i]); dp[i][4] max(dp[i - 1][4], dp[i - 1][3] prices[i]); 3.dp数组如何初始化 dp数组如何初始化 第0天没有操作这个最容易想到就是0即dp[0][0] 0; 第0天做第一次买入的操作dp[0][1] -prices[0]; 第0天做第一次卖出的操作这个初始值应该是多少呢 此时还没有买入怎么就卖出呢 其实大家可以理解当天买入当天卖出所以dp[0][2] 0; 第0天第二次买入操作初始值应该是多少呢应该不少同学疑惑第一次还没买入呢怎么初始化第二次买入呢 第二次买入依赖于第一次卖出的状态其实相当于第0天第一次买入了第一次卖出了然后再买入一次第二次买入那么现在手头上没有现金只要买入现金就做相应的减少。 所以第二次买入操作初始化为dp[0][3] -prices[0]; 同理第二次卖出初始化dp[0][4] 0; 4.确定遍历顺序 从递归公式其实已经可以看出一定是从前向后遍历因为dp[i]依靠dp[i - 1]的数值。 5.举例推导dp数组 以输入[1,2,3,4,5]为例 代码如下 class Solution {class Solution {public int maxProfit(int[] prices) {// 定义dpint len prices.length;int[][] dp new int[len][5];// 初始化dp[0][1] -prices[0];dp[0][3] -prices[0];// 状态转移for (int i 1; i len; i) {dp[i][0] dp[i - 1][0];dp[i][1] Math.max(dp[i - 1][1], dp[i - 1][0] - prices[i]);dp[i][2] Math.max(dp[i - 1][1] prices[i], dp[i - 1][2]);dp[i][3] Math.max(dp[i - 1][3], dp[i - 1][2] - prices[i]);dp[i][4] Math.max(dp[i - 1][3] prices[i], dp[i - 1][4]);}return dp[len - 1][4];} } 时间复杂度 O ( n ) O(n) O(n) 空间复杂度 O ( n ∗ 5 ) O(n*5) O(n∗5) Topic2买卖股票的最佳时机IV 题目 思路 参考上一题 class Solution {public int maxProfit(int k, int[] prices) {// 定义dpint len prices.length;int[][] dp new int[len][2 * k 1];// 初始化for (int i 1; i 2 * k 1; i i 2) {dp[0][i] -prices[0];}for (int i 1; i len; i) {for (int j 0; j 2 * k - 1; j j 2) {dp[i][j 1] Math.max(dp[i - 1][j 1], dp[i - 1][j] - prices[i]);dp[i][j 2] Math.max(dp[i - 1][j 1] prices[i], dp[i - 1][j 2]);}}return dp[len - 1][2 * k];} }时间复杂度 O ( n ∗ k ) O(n*k) O(n∗k) 空间复杂度 O ( n ∗ k ) O(n*k) O(n∗k)
http://www.tj-hxxt.cn/news/218032.html

相关文章:

  • 做网站的名字大全深圳广告网站设计制作
  • 建设网站中期要做什么小江高端企业网站建设
  • 网站广告图做多大西安市今天发生的重大新闻
  • 贵州省建设厅网站首页wordpress 文章 新窗口打开
  • 青岛建设局网站首页网站建设企业熊掌号
  • 最新一键自助建站程序源码ps网页设计实验报告
  • 好的网站推广如何做 旅游网站内容
  • 如何保存网站上的图片不显示图片上海公司电话
  • 设计型网站案例十大正规交易平台
  • 米拓建站最新进展蓝色 宽屏 网站 模板
  • 山东省建设招标信息网站展示型网站开发
  • 网站建设对接流程制作短视频最好的软件
  • 做易经网站国家职业资格证书官网
  • 为古汉字老人做网站wordpress 文件上传功能
  • 网站链接加密wordpress虚拟主机安装教程
  • 网站可以一个人做吗网站图片怎么换
  • flash网站制作单选框和复选框ui组件重庆微信企业网站
  • 新网站怎么做wordpress更改图片
  • 微信商城网站怎么开发九江有没有做网站的公司
  • wordpress 多站点 固定链接济南营销型网站建设哪家好
  • 个人网站icp备案号服装企业的网站建设
  • 阿里云购买网站登录wordpress 分类下怎么调用带有缩略图的文章?
  • 网站建设开票单位景观石网站建设方案
  • 网站页面设计流程电商网站更适合
  • 怎样通过网盘做电影网站想代理个网站建设平台
  • 做门户网站需要学什么知识企业网站建设包括哪些
  • 无锡建设机械网站怎么才能做电商
  • 黑龙江省建设厅网站的电话wordpress建站优势
  • 空间站做网站有什么网站底部浮动广告代码
  • 厦门网站建设哪好网站建设标签