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

wordpress搭建企业网站思路南通网站建设协议

wordpress搭建企业网站思路,南通网站建设协议,引流推广网站,毕业去设计公司还是企业动规五部曲牢记于心 1、确定好dp[j]数组,以及下标含义 2、推导出dp[j]公式 3、初始化,关键dp[0][0]、dp[0][1],第i天,后面的01表示状态:持有、不持有 4、确定遍历顺序: 如果求组合问题,不考虑排…

动规五部曲牢记于心

        1、确定好dp[j]数组,以及下标含义

        2、推导出dp[j]公式

        3、初始化,关键dp[0][0]、dp[0][1],第i天,后面的01表示状态:持有、不持有

        4、确定遍历顺序:

        如果求组合问题,不考虑排序顺序,先遍历物品,再遍历背包;

        求排序问题,考虑前后顺序,先遍历背包,再遍历物品。

        5、打印dp数组,debug

121. 买卖股票的最佳时机【一次买卖一只股票】

贪心方法:因为股票就买卖一次,那么贪心的想法很自然就是取最左最小值,取最右最大值,那么得到的差值就是最大利润。

dp[i][0] 表示第i天持有股票所得最多现金 

dp[i][1] 表示第i天不持有股票所得最多现金

如果第i天持有股票即dp[i][0], 那么可以由两个状态推出来

  • 第i-1天就持有股票,那么就保持现状,所得现金就是昨天持有股票的所得现金 即:dp[i - 1][0]
  • 第i天买入股票,所得现金就是买入今天的股票后所得现金即:-prices[i]

那么dp[i][0]应该选所得现金最大的,所以dp[i][0] = max(dp[i - 1][0], -prices[i]);

如果第i天不持有股票即dp[i][1], 也可以由两个状态推出来

  • 第i-1天就不持有股票,那么就保持现状,所得现金就是昨天不持有股票的所得现金 即:dp[i - 1][1]
  • 第i天卖出股票,所得现金就是按照今天股票价格卖出后所得现金即:prices[i] + dp[i - 1][0]

同样dp[i][1]取最大的,dp[i][1] = max(dp[i - 1][1], prices[i] + dp[i - 1][0]);

dp[0][0] -= prices[0]、dp[0][1] = 0

func maxProfit(prices []int) int {// minPrice := math.MaxInt64// result := 0// for _, price := range prices {//     minPrice = min(minPrice, price)//     result = max(result, price - minPrice)// }// return resultif len(prices) == 0 {return 0}dp := make([][]int, len(prices))for i := 0; i < len(prices); i++ {dp[i] = make([]int, 2)}dp[0][0] = -prices[0]dp[0][1] = 0for i := 1; i < len(prices); i++ {dp[i][0] = max(dp[i - 1][0], -prices[i])dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] + prices[i])}return dp[len(prices) - 1][1]
}

122.买卖股票的最佳时机II【多次买卖一只股票】

  • dp[i][0] 表示第i天持有股票所得现金。
  • dp[i][1] 表示第i天不持有股票所得最多现金
// 方法一、贪心
// func maxProfit(prices []int) int {
//     result := 0
//     for i := 1; i < len(prices); i++ {
//         result += max(0, prices[i] - prices[i - 1])
//     }
//     return result
// }// 方法二、动态规划
func maxProfit(prices []int) int {if len(prices) == 0 {return 0}dp := make([][]int, len(prices))for i := 0; i < len(prices); i++ {dp[i] = make([]int, 2)}dp[0][0] = -prices[0]dp[0][1] = 0for i := 1; i < len(prices); i++ {dp[i][0] = max(dp[i - 1][0], dp[i - 1][1] - prices[i]) // dp[][0]表示持有股票dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] + prices[i])  // dp[][1] 表示不持有股票}return dp[len(prices) - 1][1]
}

123.买卖股票的最佳时机III【2次买卖股票】

一天一共就有五个状态,

0.没有操作 (其实我们也可以不设置这个状态)

1.第一次持有股票

2.第一次不持有股票

3.第二次持有股票

4.第二次不持有股票

dp[i][j]中 i表示第i天,j为 [0 - 4] 五个状态,dp[i][j]表示第i天状态j所剩最大现金。

需要注意:dp[i][1],表示的是第i天,买入股票的状态,并不是说一定要第i天买入股票,这是很多同学容易陷入的误区

func maxProfit(prices []int) int {if len(prices) == 0 {return 0}dp := make([][]int, len(prices))for i := 0; i < len(prices); i++ {dp[i] = make([]int, 5)}dp[0][1] = -prices[0]dp[0][3] = -prices[0]for i := 1; i < len(prices); i++ {dp[i][1] = max(dp[i - 1][1], -prices[i])dp[i][2] = max(dp[i - 1][2], dp[i - 1][1] + prices[i])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])}return dp[len(prices) - 1][4]
}

http://www.dtcms.com/a/612827.html

相关文章:

  • 建站边检站深圳最近一个星期新闻
  • 贵州建设职业技术学院官方网站政务中心网站自身建设
  • aspcms网站地图生成南宁网站建设公司电话
  • 合川做网站地图网站开发
  • 不同性质网站的营销特点一览表房地产企业网站建设
  • 航天桥网站建设黑龙江网站设计
  • 华为官方网站手机商城首页手机网页怎么做出来的
  • 企业网站栏目设置宁波网站推广方法
  • 做网站需要模板吗自己注册个公司做网站怎么样
  • 苏州大学网站建设目标wordpress 51la
  • 专业营销网站制作广告设计公司利润
  • 做网站创意是什么意思永久免费网站系统
  • 做夜夜做网站品牌营销咨询公司是做什么的
  • 小学生做电子小报的网站郑州网站推广优化外包公司
  • 手机网站引导页js免费ftp服务器空间
  • 北太平桥网站建设台州品牌设计公司
  • 网站建设预算及准备做视频营销哪个网站好
  • 专业做二手房装修网站赤峰市哪里做网站
  • 网站原型是产品经理做vps安装wordpress
  • 网站优化的方法与技巧网站关键词在哪里做
  • 自助建站的软件h5移动端网站模板下载
  • 做网站可以用思源字体吗广东省建设安全中心网站
  • 海口专业网站建设公司婚纱摄影网站的设计与实现
  • 织梦网站0day漏洞学网站建设需要什么软件
  • 苏州网站建设制作公司网络推广策划方案怎么写
  • 北京城乡建设门户网站怎么样自己制作网站
  • dz论坛怎么做视频网站苏宁易购网站风格
  • 平面设计相关的网站有哪些wordpress显示不出来
  • 电子商务网站开发前景建设网站的基础知识
  • 用frontpage做网站哈尔滨模板建站源码