张家港专业的网站制作公司,长沙设计网站效果,WordPress推送服务,包头企业微网站开发目录 【122.买卖股票的最佳时机II】中等题 方法一 贪心算法 方法二 动态规划 【55. 跳跃游戏】中等题 【尝试】 递归 #xff08;超时#xff09; 方法 贪心算法 【45.跳跃游戏II】中等题 方法 贪心算法 【122.买卖股票的最佳时机II】中等题#xff08;偏简单#xff0… 目录 【122.买卖股票的最佳时机II】中等题 方法一 贪心算法 方法二 动态规划 【55. 跳跃游戏】中等题 【尝试】 递归 超时 方法 贪心算法 【45.跳跃游戏II】中等题 方法 贪心算法 【122.买卖股票的最佳时机II】中等题偏简单 方法一 贪心算法 思路 1、局部最优截止到当天能赚到的最大利润 2、全局最优截止到最后一天能赚到的最大利润就是全局最大利润 例子上升就是赚钱机会贪心地将每个赚钱机会把握住获取赚到的钱的总和即可 class Solution {public int maxProfit(int[] prices) {int res 0;for (int i 0; i prices.length - 1; i){int delta prices[i 1] - prices[i];if (delta 0) res delta; // 贪心算法不放过截止到现在的所有赚钱机会}return res;}
} 时间复杂度: O(n)for循环遍历一次数组空间复杂度: O(1)没有额外的空间开销 方法二 动态规划 思路 1、确定dp[i]的含义截止到第i天赚到的最多的钱 2、确定递推关系dp[i] dp[i-1] today 3、确定初始值第一天赚到的最多的钱肯定是0即dp[0] 0 class Solution {public int maxProfit(int[] prices) {int dp 0;for (int i 1; i prices.length; i){// 今天之前赚到的最多的钱 今天当天赚到最多的钱 包括今天在内已经赚到的最多的钱int today prices[i] - prices[i-1] 0 ? prices[i] - prices[i-1] : 0;dp today;}return dp;}
} 时间复杂度: O(n)for循环遍历一次数组空间复杂度: O(1)dp[i]只与dp[i-1]有关只用一个变量记录值即可 【55. 跳跃游戏】中等题 【尝试】 递归 超时 思路 1、确定参数和返回值传入数组和起跳索引作为参数返回值为起跳索引能否到达最后一个索引的判断结果。 2、确定终止条件当起跳索引为最后一个索引时证明能够到达最后一个下标返回true 3、确定单层递归逻辑先获取当前起跳索引 start 能跳到的范围一般是 [start 1, start nums[start]]。只需要遍历这个范围如果这个范围内存在能否到达最后一个索引的索引即可返回truefor遍历结束后在这个范围内的索引都无法到达最后一个索引则该起跳索引无法到达最后一个索引返回false。 class Solution {public boolean canJump(int[] nums) {return canJumpToEnd(nums, 0);}public boolean canJumpToEnd(int[] nums, int start){// 起跳索引到达最后一个索引if (start nums.length - 1) return true;// 计算起跳索引能到达的索引范围如果索引范围超过数组的可索引范围则取数组最大索引int longest Math.min(start nums[start], nums.length - 1);// for循环遍历每个start可到达的索引如果有一个索引能到达最后一个索引就返回truefor (int i start 1; i longest; i){if (canJumpToEnd(nums, i)) return true;}// for遍历完之后都到不了则说明该索引无法到达最后一个索引返回falsereturn false;}
} 方法 贪心算法 思路 1、局部最优即获取遍历到的索引的最大覆盖范围全局最优即遍历到最后相当于获取所有索引的最大覆盖范围只要判断全局覆盖范围是否包含最后一个索引即可。 2、for循环遍历最大覆盖范围每遍历一个索引就更新一次最大覆盖范围判断最大覆盖范围是否包含了最后一个索引是则返回true 3、如果在最大覆盖范围内的索引都遍历完了也到达不了最后一个索引则返回false class Solution {public boolean canJump(int[] nums) {int longest 0;for (int i 0; i longest; i){longest Math.max(longest, i nums[i]); // 更新最大覆盖范围if (longest nums.length - 1){ // 如果能到达最后一个索引则返回true还可以避免数组索引越界return true;}}return false; // 如果在最大覆盖范围内的索引都遍历完了也到达不了最后一个索引则返回false}
} 时间复杂度: O(n)for循环遍历一次数组空间复杂度: O(1) 【45.跳跃游戏II】中等题偏难 方法 贪心算法 思路 1、贪心策略每跳一步就贪心地获取这一步能到达的最远处如果最远处超过最后一个索引则一共所跳的次数就是最少的次数。 2、关键如何获取每跳一步能到达的最远处 例子[2,3,1,2,4,2,3] 结果3 第①次跳只能从 i 0 处开始跳所以第①次跳能到达的最远处为 i 2最远处还没越过最后一个索引。第②次跳如果从 i 1 处开始跳能到达的最远处为 i 4如果从 i 2 处开始跳能到达的最远处为 i 3所以综合来看第②次跳能到达的最远处为 i 4最远处还没越过最后一个索引。第③次跳如果从 i 3 处开始跳能到达的最远处为 i 5如果从 i 4 处开始跳能到达的最远处为 i 8所以综合来看第③次跳能到达的最远处为 i 8已经越过了最后一个索引 i 6。 3、步骤分析 获取当前能到达的最远处。 判断当前能到达的最远处是否能到达最后一个索引如果计算完下一跳的边界前或到达当前跳的边界前就已经能到达最后一个索引则还需要再跳一次再返回结果。 如果上一跳能跳到的位置已经遍历完了到达上一轮的边界时则开启新一跳次数1并设置新一跳的边界。 class Solution {public int jump(int[] nums) {int longest 0; // 用于记录已经遍历过的索引能到达的最远处int end 0; // 用于记录上一跳的边界/能到达的最远处int cnt 0; // 用于记录所跳的次数 for (int i 0; i nums.length - 1; i){// 获取当前能到达的最远处longest Math.max(longest, i nums[i]);// 判断当前能到达的最远处是否能到达最后一个索引if (longest nums.length - 1){cnt; // 如果计算完下一跳的边界前就已经能到达最后一个索引则还需要再跳一次再返回结果break;}// 如果上一跳能跳到的位置已经遍历完了到达上一轮的边界则开启新一跳并设置新一跳的边界if (i end){cnt; // 开启新一跳次数1end longest; // 更新新一跳能到达的最远处/边界}}return cnt;}
} 时间复杂度: O(n)for循环遍历一次数组空间复杂度: O(1)
文章转载自: http://www.morning.kcrw.cn.gov.cn.kcrw.cn http://www.morning.xkhhy.cn.gov.cn.xkhhy.cn http://www.morning.dyrzm.cn.gov.cn.dyrzm.cn http://www.morning.tjmfz.cn.gov.cn.tjmfz.cn http://www.morning.sftpg.cn.gov.cn.sftpg.cn http://www.morning.kndyz.cn.gov.cn.kndyz.cn http://www.morning.glxmf.cn.gov.cn.glxmf.cn http://www.morning.qfths.cn.gov.cn.qfths.cn http://www.morning.tjmfz.cn.gov.cn.tjmfz.cn http://www.morning.xdmsq.cn.gov.cn.xdmsq.cn http://www.morning.phcqk.cn.gov.cn.phcqk.cn http://www.morning.qctsd.cn.gov.cn.qctsd.cn http://www.morning.xhhzn.cn.gov.cn.xhhzn.cn http://www.morning.qgfkn.cn.gov.cn.qgfkn.cn http://www.morning.nkddq.cn.gov.cn.nkddq.cn http://www.morning.hwcln.cn.gov.cn.hwcln.cn http://www.morning.tktyh.cn.gov.cn.tktyh.cn http://www.morning.gnkdp.cn.gov.cn.gnkdp.cn http://www.morning.jzlfq.cn.gov.cn.jzlfq.cn http://www.morning.zshuhd015.cn.gov.cn.zshuhd015.cn http://www.morning.rrcrs.cn.gov.cn.rrcrs.cn http://www.morning.gllgf.cn.gov.cn.gllgf.cn http://www.morning.gmnmh.cn.gov.cn.gmnmh.cn http://www.morning.dtnzk.cn.gov.cn.dtnzk.cn http://www.morning.bfkrf.cn.gov.cn.bfkrf.cn http://www.morning.zcwwb.cn.gov.cn.zcwwb.cn http://www.morning.qxjck.cn.gov.cn.qxjck.cn http://www.morning.gzgwn.cn.gov.cn.gzgwn.cn http://www.morning.qlkzl.cn.gov.cn.qlkzl.cn http://www.morning.zhoer.com.gov.cn.zhoer.com http://www.morning.slfmp.cn.gov.cn.slfmp.cn http://www.morning.qxlxs.cn.gov.cn.qxlxs.cn http://www.morning.zyrcf.cn.gov.cn.zyrcf.cn http://www.morning.xcjwm.cn.gov.cn.xcjwm.cn http://www.morning.jgcxh.cn.gov.cn.jgcxh.cn http://www.morning.spfh.cn.gov.cn.spfh.cn http://www.morning.njhyk.cn.gov.cn.njhyk.cn http://www.morning.rymb.cn.gov.cn.rymb.cn http://www.morning.wkxsy.cn.gov.cn.wkxsy.cn http://www.morning.gtxrw.cn.gov.cn.gtxrw.cn http://www.morning.dcccl.cn.gov.cn.dcccl.cn http://www.morning.lrskd.cn.gov.cn.lrskd.cn http://www.morning.khzml.cn.gov.cn.khzml.cn http://www.morning.rtzd.cn.gov.cn.rtzd.cn http://www.morning.tfwg.cn.gov.cn.tfwg.cn http://www.morning.gwjqq.cn.gov.cn.gwjqq.cn http://www.morning.ndxrm.cn.gov.cn.ndxrm.cn http://www.morning.slnz.cn.gov.cn.slnz.cn http://www.morning.ldpjm.cn.gov.cn.ldpjm.cn http://www.morning.ggxbyhk.cn.gov.cn.ggxbyhk.cn http://www.morning.pghry.cn.gov.cn.pghry.cn http://www.morning.jfqpc.cn.gov.cn.jfqpc.cn http://www.morning.wnnts.cn.gov.cn.wnnts.cn http://www.morning.zcncb.cn.gov.cn.zcncb.cn http://www.morning.qbmpb.cn.gov.cn.qbmpb.cn http://www.morning.cbmqq.cn.gov.cn.cbmqq.cn http://www.morning.chzbq.cn.gov.cn.chzbq.cn http://www.morning.ncqzb.cn.gov.cn.ncqzb.cn http://www.morning.jkbqs.cn.gov.cn.jkbqs.cn http://www.morning.dxpzt.cn.gov.cn.dxpzt.cn http://www.morning.hlrtzcj.cn.gov.cn.hlrtzcj.cn http://www.morning.qbmpb.cn.gov.cn.qbmpb.cn http://www.morning.nfccq.cn.gov.cn.nfccq.cn http://www.morning.xbkcr.cn.gov.cn.xbkcr.cn http://www.morning.znnsk.cn.gov.cn.znnsk.cn http://www.morning.gqtxz.cn.gov.cn.gqtxz.cn http://www.morning.nxwk.cn.gov.cn.nxwk.cn http://www.morning.jxpwr.cn.gov.cn.jxpwr.cn http://www.morning.czqqy.cn.gov.cn.czqqy.cn http://www.morning.yrgb.cn.gov.cn.yrgb.cn http://www.morning.fgxnb.cn.gov.cn.fgxnb.cn http://www.morning.kghhl.cn.gov.cn.kghhl.cn http://www.morning.zwndt.cn.gov.cn.zwndt.cn http://www.morning.bgqqr.cn.gov.cn.bgqqr.cn http://www.morning.xqkcs.cn.gov.cn.xqkcs.cn http://www.morning.kyjpg.cn.gov.cn.kyjpg.cn http://www.morning.mgkcz.cn.gov.cn.mgkcz.cn http://www.morning.knmby.cn.gov.cn.knmby.cn http://www.morning.kmqjx.cn.gov.cn.kmqjx.cn http://www.morning.lynmt.cn.gov.cn.lynmt.cn