题目1:【二刷完成】
class Solution {
public int maxProfit(int[] prices) {
int result = 0;
for (int i=1; i<prices.length;i++){
result += Math.max(prices[i]-prices[i-1],0);
}
return result;
}
}
题目2:【二刷完成】
class Solution {
public boolean canJump(int[] nums) {
if (nums.length<=1) return true;
int coverRange = 0;
for (int i=0;i<=coverRange;i++){
coverRange = Math.max(coverRange, i + nums[i]);
if (coverRange>=nums.length-1) return true;
}
return false;
}
}
题目3:【二刷完成】
class Solution {
public int jump(int[] nums) {
if (nums.length<=1){
return 0;
}
int count=0;
int currentCover = 0;
int maxCover = 0;
for (int i=0; i<nums.length;i++){
maxCover = Math.max(maxCover,i+nums[i]);
if (maxCover>=nums.length-1){
count++;
break;
}
//走到当前覆盖最大位置的时候
if (i==currentCover){
currentCover = maxCover;
count++;
}
}
return count;
}
}
class Solution {
public int jump(int[] nums) {
int currentCover = 0;
int nextCover = 0;
int count = 0;
if (nums.length==1) return 0;
for (int i=0;i<nums.length;i++){
nextCover = Math.max(nextCover,i+nums[i]);
if (i==currentCover){
count++;
currentCover = nextCover;
}
if (currentCover>=nums.length-1) return count;
}
return -1;
}
}