布吉网站建设哪家技术好,wordpress也没,网站内做动图,微官网和小程序有什么区别LeetCode 122 买卖股票的最佳时机II
题目链接#xff1a;122. 买卖股票的最佳时机 II - 力扣#xff08;LeetCode#xff09;
【解题思路】
利润当天成交价-昨天成交价
当遇到利润为正数的情况#xff0c;将其收集。
【解题步骤】 1.定义一个result#xff0c;将每天…LeetCode 122 买卖股票的最佳时机II
题目链接122. 买卖股票的最佳时机 II - 力扣LeetCode
【解题思路】
利润当天成交价-昨天成交价
当遇到利润为正数的情况将其收集。
【解题步骤】 1.定义一个result将每天的正利润累加 2.循环遍历数组注意i从1开始因为需要从第二天开始减去第一天的价格才能得出利润 如果当天利润为正数累加到result数组里 4.return result
【代码部分】
class Solution {public int maxProfit(int[] prices) {int result 0;for(int i 1; i prices.length ; i){resultMath.max(prices[i] - prices[i-1],0);}return result;}
}
LeetCode 55 跳跃游戏
题目链接55. 跳跃游戏 - 力扣LeetCode
【解题思路】
不要纠结于能往后跳多少步只思考当前位置的覆盖范围只要在覆盖范围内的元素我们在当前位置都能跳到。
如果范围内的元素包含最后一个元素则返回true否则返回false。
【解题步骤】 1.定义一个cover用来确认覆盖范围 2.如果数组里就一个元素那么就一定可以跳跃到的return true 4.循环遍历数组i的终止条件是小于等于cover因为我们只能在覆盖范围内移动 在已有的覆盖范围内取最大的覆盖范围赋值给cover 如果覆盖范围覆盖到终点则return true 5.如果遍历结束还没走到true就return false
【代码部分】
class Solution {public boolean canJump(int[] nums) {int cover 0;if(nums.length 1)return true;for(int i 0; i cover ; i){cover Math.max(nums[i] i,cover);if(covernums.length- 1)return true;}return false;}
}
LeetCode 45 跳跃游戏II
题目链接45. 跳跃游戏 II - 力扣LeetCode
【解题思路】
原理同上不过每一步我们需要尽可能的增加我们的覆盖范围
【解题步骤】 1.定义一个cover用来确认覆盖范围 2.定义一个next用来确认下一步的覆盖范围 3.定义一个result记录我们一共跳了几步 3.遍历数组 用next记录这一步走完后下一步的覆盖范围只记录在当前覆盖范围内覆盖范围最大的元素 如果i走到了当前覆盖的终点并且当前终点不是数组的终点位置 需要启动下一步的覆盖范围result 将next赋给cover启动下一步 如果当前的覆盖范围已经覆盖到终点立刻break 如果当前覆盖范围已经到达了终点立即break 4.return result
【代码部分】
class Solution {public int jump(int[] nums) {if(nums null || nums.length 0 || nums.length 1){return 0;}int result 0;int cover 0;int next 0;for(int i 0; i nums.length ; i){next Math.max(nums[i]i,next);if(i cover){if(i nums.length - 1){result ;cover next;if(cover nums.length - 1){break;}}else{break;}}}return result;}
}