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

网站建设与管理专业的行业发展wordpress 拖拽神器

网站建设与管理专业的行业发展,wordpress 拖拽神器,上海企业官网,wordpress 汽车租赁文章目录 1. 买卖股票的最佳时机 III题干:算法原理:1. 状态表示:2. 状态转移方程3. 初始化4. 填表顺序5. 返回值 代码: 2. Z 字形变换题干:算法原理:1. 模拟2. 找规律 代码: 1. 买卖股票的最佳时…

文章目录

  • 1. 买卖股票的最佳时机 III
    • 题干:
    • 算法原理:
      • 1. 状态表示:
      • 2. 状态转移方程
      • 3. 初始化
      • 4. 填表顺序
      • 5. 返回值
    • 代码:
  • 2. Z 字形变换
    • 题干:
    • 算法原理:
      • 1. 模拟
      • 2. 找规律
    • 代码:

1. 买卖股票的最佳时机 III

在这里插入图片描述
原题链接


题干:

第 i 个元素是一支给定的股票在第 i 天的价格
最多可以完成 两笔 交易
注意:你不能同时参与多笔交易
在这里插入图片描述


算法原理:

1. 状态表示:

在这里插入图片描述
dp[i] 表示:第 i 天结束之后,所能获得的最大利润

f[i][j] 表示:第 i 天结束之后,完成了 j 次交易,此时处于“买入”状态下的,最大利润
g[i][j] 表示:第 i 天结束之后,完成了 j 次交易,此时处于“卖出”状态下的,最大利润

2. 状态转移方程

在这里插入图片描述
f[i][j] = Math.max(f[i - 1][j], g[i - 1][j] - prices[i])

g[i][j] = g[i - 1][j]
if(j - 1 >= 0) {
g[i][j] = Math.max(g[i][j], f[i - 1][j - 1] + prices[i]);
}

3. 初始化

在这里插入图片描述
在这里插入图片描述

4. 填表顺序

从上往下填写每一行
每一行从左往右,两个表一起填

5. 返回值

g 表的最后一行里面的最大值


代码:

class Solution {public int maxProfit(int[] prices) {int n = prices.length;int INF = 0x3f3f3f3f;int[][] f = new int[n][3];int[][] g = new int[n][3];for(int j = 0; j < 3; j++) {f[0][j] = g[0][j] = -INF;}f[0][0] = -prices[0];g[0][0] = 0;for(int i = 1; i < n; i++) {for(int j = 0; j < 3; j++) {f[i][j] = Math.max(f[i - 1][j], g[i - 1][j] - prices[i]);g[i][j] = g[i - 1][j];if(j - 1 >= 0) {g[i][j] = Math.max(g[i][j], f[i - 1][j - 1] + prices[i]);}}}int ret = 0;for(int j = 0; j < 3; j++) {ret = Math.max(ret, g[n - 1][j]);}return ret;}
}

在这里插入图片描述


2. Z 字形变换

在这里插入图片描述
原题链接


题干:

字符串 s,给定的行数 numRows
从上往下、从左到右进行 Z 字形排列
输出需要从左往右逐行读取
在这里插入图片描述


算法原理:

1. 模拟

在这里插入图片描述

2. 找规律

在这里插入图片描述
第一行:0 到 0+d 到 0+2d…0+kd

第 k 行:(k, d-k) 到 (k+d, d-k+d) 到 (k+2d, d-k+2d)

第 n-1 行:n-1 到 n-1+d 到 n-1+2d…n-1+kd

当 n = 1 的时候特殊处理


代码:

class Solution {public String convert(String s, int numRows) {// 处理一下边界情况if(numRows == 1) {return s;}int d = 2 * numRows - 2;int n = s.length();StringBuilder ret = new StringBuilder();//1. 处理第一行for(int i = 0; i < n; i += d) {ret.append(s.charAt(i));}//2. 处理中间行for(int k = 1; k < numRows - 1; k++) {// 依次枚举中间行for(int i = k, j = d - i; i < n || j < n; j += d, i += d) {if(i < n) {ret.append(s.charAt(i));}if(j < n) {ret.append(s.charAt(j));}}}//3. 处理最后一行for(int i = numRows - 1; i < n; i += d) {ret.append(s.charAt(i));}return ret.toString();}
}

在这里插入图片描述

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

相关文章:

  • 工厂网站建设费用提升学历图片
  • 网站建设包含美工网站建设模板ppt
  • 提供网站建设工具的公司南雄市住房和城乡建设局网站
  • 网站设计论文前言怎么写宁波建设商城网站
  • 广州网站建设推荐乐云seo搭建自己的网站需要什么
  • 企业网站做几个合适深圳微信公众号开发
  • 网站后台源代码更改郑州网站建设服务商
  • 订做网站建设东莞专业的单位网站建设
  • 商务网站建设难不难新闻类网站的设计
  • 网站安全建设管理制度电子商务网站建设考试题
  • 电子商务网站建设与管理课后规划一个电子商务网站
  • 上海松江做网站公司wordpress persona
  • 网页创建网站o2o的四种营销模式
  • 松阳县建设局网站公示哪个网站可以学做标书
  • 南宁做网站seo学院网站源码
  • 徐州免费建站搭建网站免费
  • 中国做的比较好的网站设计公司有哪些wordpress wp config
  • 厦门h5建站广告设计logo标志
  • 门户网站建设思路谁有人和兽做的网站?
  • 大渡口网站建设店铺设计费用怎么收费
  • 写作网站投稿哪个好文化建设设计网站
  • 建设大型网站设计公司我自己的网站怎么做关键词优化
  • 搭建一个网站的基本流程网站微信支付怎么做的
  • 青岛建立网站电话物流信息平台网站建设
  • 做双语网站用什么cms系统好十堰小程序开发
  • 成都外贸网站建设费用权重高的博客网站
  • 网站如何百度收入oa系统登录界面
  • 渭南网站建设电话论坛平台主要产品
  • 网站目录文件夹页面设计存在的问题
  • 外贸网站建设 双语网站建设天津建设工程投标信息