织梦网站怎么做下载地址,做房地产行业的怎么做网站,微信商城怎么开商城,360地图手机版Day32题目
LeetCode122.买股票的最佳时机
核心思想#xff1a;很简单#xff0c;只要第二天比第一天贵#xff0c;就第一天买入#xff0c;第二天卖出
class Solution {public int maxProfit(int[] prices) {// 只要后一天比这一天价钱高就买#xff0c;然后第二天卖出…Day32题目
LeetCode122.买股票的最佳时机
核心思想很简单只要第二天比第一天贵就第一天买入第二天卖出
class Solution {public int maxProfit(int[] prices) {// 只要后一天比这一天价钱高就买然后第二天卖出int res 0;for(int i 1 ; i prices.length ; i ){if(prices[i] prices[i-1]){res prices[i]-prices[i-1];}}return res;}
}LeetCode55.跳跃游戏
核心思想只要看最远的跳远距离能到最后一位就可以了
class Solution {public boolean canJump(int[] nums) {// 看跳的最远能覆盖最后一位就行// count是目前能跳的最远距离int count 0 ;if(nums.length 1) return true;for(int i 0 ; i count; i ){// 更新count为最远跳远距离count Math.max(count,nums[i]i);if(count nums.length-1) return true;}return false;}
}LeetCode45跳远游戏Ⅱ需要计算跳远的最小次数
核心思想我使用了从后向前的遍历比较好想但是遍历次数多些。也可以维护一个当前最大距离和最大距离计算几步最大距离能覆盖到最后一个元素
class Solution {public int jump(int[] nums) {if (nums.length 1)return 0;int maxCover 0;int curCover 0;int count 0;for (int i 0; i maxCover; i) {// 更新最大覆盖距离maxCover Math.max(maxCover, i nums[i]);// 符合要求的结果if (maxCover nums.length - 1) {count;return count;}// curCover是当时 第一个元素能到达的最远距离// 如果到达了第一个元素能到达的最远距离那么就该走下一步了if (i curCover) {count;// 更新第二步能到达的最大距离 为 第一步覆盖到的元素中最远的一个。curCover maxCover;}}return count;}
}// 这是我从后向前遍历的代码
class Solution {public int jump(int[] nums) {if(nums.length 1) return 0;// 从后向前找最大能到这里的位置// target 记录接下来一步要到达什么地方int target nums.length- 1;int count 0 ;while(target !0 ){int temp target;for(int i temp ; i 0 ; i --){// 从后向前遍历保证得到的下一步是离得最远的那个。if(nums[i] i temp){if(target i){target i;}}}count;}return count;}
}