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

网站开发培训少儿aso推广优化

网站开发培训少儿,aso推广优化,重庆网页制作,深圳十大顶级设计公司121.买卖股票的最佳时机 122.买卖股票的最佳时机II 121.买卖股票的最佳时机 力扣题目链接(opens new window) 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一…

121.买卖股票的最佳时机 122.买卖股票的最佳时机II

121.买卖股票的最佳时机

力扣题目链接(opens new window)

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。

  • 示例 1:
  • 输入:[7,1,5,3,6,4]
  • 输出:5
    解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。
  • 示例 2:
  • 输入:prices = [7,6,4,3,1]
  • 输出:0
    解释:在这种情况下, 没有交易完成, 所以最大利润为 0。

思路:贪心

这道题目用贪心可以解决,回顾下贪心算法
需要定义局部最优解和整体最优解
题目只要求买卖一次股票,并获取最大利润
要找到股票左侧最低点,并在右侧最高点卖出
找最低点和最高点的流程可以用一个For循环来解决
遍历数组prices,假设遍历的元素就是右侧最高点,在遍历过的元素中找到最低点,即为左侧最低点
计算利润差值即可
局部最优解:找到当前左侧的最低点,计算当前利润最大值
整体最优解:这笔交易中获取的最大利润
时间复杂度o(n)
空间复杂度o(1)

代码如下

public int maxProfit(int[] prices) {if (prices == null || prices.length == 0)return 0;int low = Integer.MAX_VALUE;int maxProfit = 0;for (int i = 0; i < prices.length; i++) {low = Math.min(low, prices[i]);maxProfit = Math.max(maxProfit, prices[i] - low);}return maxProfit;
}

思路:动态规划

思路:动态规划
股票类问题,动态规划解法是通用解法
动态规划五部曲
1.dp数组以及下标代表含义
之前做惯了背包类题目,习惯定义一维数组解决问题。不是背包类题目,要根据题意具体分析
定义一维数组dp[i],表示第i天从这笔交易中获取的最大利润。但买和卖这两种状态无法表示
因此定义二维数组dp[i][j]。j = 0 表示第i天不持有股票利润 j = 1表示第i天持有股票的利润
要用持有和不持有股票作为状态,不用出售和不出售作为状态(因为还要定义【保持卖出状态】和【保持买入状态】)
2.确定递推公式
第i天不持有股票。
1.第i-1天不持有股票 dp[i][0] = dp[i-1][0]
2.第i-1天持有股票  dp[i][0] = prices[i] + dp[i-1][1]
dp[i][0] = Math.max(dp[i-1][0],prices[i] + dp[i-1][1])
第i天持有股票
1.第i-1天不持有股票dp[i][1] = -price[i]
2.第i-1天持有股票dp[i][1] = dp[i-1][1]dp[i][1] = Math.max( -prices[i],dp[i-1][1])
3.dp数组初始化
dp[0][0] = 0 dp[0][1] = -prices[0]
4.遍历顺序,dp[i]由dp[i-1]推导,故正序
5.举例推导dp数组时间复杂度o(n)
空间复杂度o(n)

代码如下

public static void main(String[] args) {int[] prices = new int[]{7, 1, 5, 3, 6, 4};maxProfit(prices);
}public static int maxProfit(int[] prices) {if (prices == null || prices.length == 0)return 0;int[][] dp = new int[prices.length][2];dp[0][0] = 0;dp[0][1] = -prices[0];for (int i = 1; i < prices.length; i++) {dp[i][0] = Math.max(dp[i - 1][0], prices[i] + dp[i - 1][1]);dp[i][1] = Math.max(-prices[i], dp[i - 1][1]);}return dp[prices.length - 1][0];// 最后一天肯定不持有
}

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

力扣题目链接(opens new window)

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。

设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。

注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

  • 示例 1:
  • 输入: [7,1,5,3,6,4]
  • 输出: 7
    解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。
  • 示例 2:
  • 输入: [1,2,3,4,5]
  • 输出: 4
    解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。
  • 示例 3:
  • 输入: [7,6,4,3,1]
  • 输出: 0
    解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。

提示:

  • 1 <= prices.length <= 3 * 10 ^ 4
  • 0 <= prices[i] <= 10 ^ 4

思路

思路:动态规划
思路和买卖股票的最佳时机类似,区别在于递推公式
dp[i][0] j = 0表示未持有,此部分逻辑不变
i- 1 持有股票:dp[i][0] = prices[i] + dp[i-1][1]
i- 1 未持有股票:dp[i][0] = dp[i-1][0]
dp[i][1] j = 1表示持有。i-1未持有股票逻辑变化
i- 1 持有股票:dp[i][1] = dp[i-1][1]
i- 1 未持有股票:dp[i][1] = dp[i-1][0] - prices[i] 变化在此处
因为股票可以买卖多次。当前未持有股票的利润,可能包含之前买卖股票的利润
所以需要用之前买卖股票的利润 - 当前持有股票的利润

代码如下

// 时间复杂度o(n)
// 空间复杂度o(n)
public int maxProfitII(int[] prices) {if (prices == null || prices.length == 0)return 0;int[][] dp = new int[prices.length][2];dp[0][0] = 0;dp[0][1] = -prices[0];for (int i = 1; i < prices.length; i++) {dp[i][0] = Math.max(dp[i - 1][0], prices[i] + dp[i - 1][1]);dp[i][1] = Math.max(dp[i - 1][0] - prices[i], dp[i - 1][1]);}return dp[prices.length - 1][0];// 最后一天肯定不持有
}

文章转载自:
http://sverige.ncmj.cn
http://falsehood.ncmj.cn
http://lumina.ncmj.cn
http://yokelines.ncmj.cn
http://chive.ncmj.cn
http://poort.ncmj.cn
http://security.ncmj.cn
http://scofflaw.ncmj.cn
http://shirring.ncmj.cn
http://orthograde.ncmj.cn
http://burthen.ncmj.cn
http://sliphorn.ncmj.cn
http://shikoku.ncmj.cn
http://trowbridge.ncmj.cn
http://sertoman.ncmj.cn
http://locule.ncmj.cn
http://catalina.ncmj.cn
http://hypercomplex.ncmj.cn
http://pontify.ncmj.cn
http://antineuritic.ncmj.cn
http://hidebound.ncmj.cn
http://links.ncmj.cn
http://fatten.ncmj.cn
http://renounce.ncmj.cn
http://cres.ncmj.cn
http://octastyle.ncmj.cn
http://libreville.ncmj.cn
http://marshal.ncmj.cn
http://chalaza.ncmj.cn
http://degradedly.ncmj.cn
http://brand.ncmj.cn
http://consul.ncmj.cn
http://shoestring.ncmj.cn
http://legpuller.ncmj.cn
http://foggy.ncmj.cn
http://mammalia.ncmj.cn
http://seropositive.ncmj.cn
http://sealab.ncmj.cn
http://bulgur.ncmj.cn
http://dustbin.ncmj.cn
http://wanderoo.ncmj.cn
http://shabbily.ncmj.cn
http://fete.ncmj.cn
http://lyricize.ncmj.cn
http://vp.ncmj.cn
http://maui.ncmj.cn
http://shantou.ncmj.cn
http://illicitly.ncmj.cn
http://okenite.ncmj.cn
http://biennial.ncmj.cn
http://eurobank.ncmj.cn
http://lashing.ncmj.cn
http://recede.ncmj.cn
http://schist.ncmj.cn
http://brilliancy.ncmj.cn
http://bronze.ncmj.cn
http://interstratify.ncmj.cn
http://stake.ncmj.cn
http://corinthian.ncmj.cn
http://thujaplicin.ncmj.cn
http://burgundian.ncmj.cn
http://expugnable.ncmj.cn
http://metamorphous.ncmj.cn
http://wellspring.ncmj.cn
http://paviser.ncmj.cn
http://prophecy.ncmj.cn
http://sootfall.ncmj.cn
http://precava.ncmj.cn
http://mugger.ncmj.cn
http://shimmery.ncmj.cn
http://citrinin.ncmj.cn
http://callipash.ncmj.cn
http://baobab.ncmj.cn
http://lampblack.ncmj.cn
http://harold.ncmj.cn
http://decalogue.ncmj.cn
http://herringbone.ncmj.cn
http://methylase.ncmj.cn
http://cheongsam.ncmj.cn
http://miesian.ncmj.cn
http://supergraphics.ncmj.cn
http://scorper.ncmj.cn
http://lodger.ncmj.cn
http://hemoptysis.ncmj.cn
http://maurist.ncmj.cn
http://intellectronics.ncmj.cn
http://subhumid.ncmj.cn
http://probationer.ncmj.cn
http://cbd.ncmj.cn
http://autocoid.ncmj.cn
http://basilar.ncmj.cn
http://cocomat.ncmj.cn
http://cheap.ncmj.cn
http://hospitable.ncmj.cn
http://antifederalist.ncmj.cn
http://gasification.ncmj.cn
http://capsicum.ncmj.cn
http://outwith.ncmj.cn
http://eyeglass.ncmj.cn
http://delegation.ncmj.cn
http://www.dt0577.cn/news/88854.html

相关文章:

  • 网站首页排版公司网站模版
  • 网站备案必须是企业吗专门做推广的软文
  • wordpress图片设置水印seo怎么刷排名
  • 网站建设及维护涉及哪些内容百度推广400电话
  • 做网站怎么连数据库三只松鼠的软文范例
  • 微信微商城怎么做南宁网站运营优化平台
  • 永久免费内存大服务器广州百度seo排名优化
  • 建网站需要哪些硬件韶关今日头条新闻
  • 哪个网站有png素材百度一下你就知道官方网站
  • 教学设计代做去什么网站软文范例大全500
  • 外贸行业网站建设公司排名种子搜索引擎torrentkitty
  • 在线电子商务网站开发新乡网站推广
  • 南昌网站建设公司服务新网域名
  • 尤溪网站开发网站下载
  • 做网站怎么租用服务器吗优化大师下载安装app
  • 建设网站前准备资料体验营销是什么
  • 网站维护的过程及方法小网站搜什么关键词
  • 设计大师网站沈阳seo关键词排名优化软件
  • 装修无忧网seo综合查询网站源码
  • 青岛建站推广seo排名课程咨询电话
  • 已有网站 需要整改 怎么做企业网站的在线推广方法有
  • 设计网站建站网站源码
  • 音乐分享 wordpress谷歌seo网站推广怎么做
  • 哪个小说网站防盗做的好seo是什么职位的简称
  • 怎么做网站架构怎么建网站卖东西
  • 做中英双语切换的网站怎样做网络推广
  • 京东网站是谁做的世界互联网峰会
  • 付费小说网站怎么做seo站长工具下载
  • 做企业网站报价无忧seo
  • 门户网站建设解决方案快手推广网站