?122.买卖股票的最佳时机II??
只收集每日的正利润
class Solution {
public int maxProfit(int[] prices) {
int res = 0;
for(int i = 1; i < prices.length; i++) {//第二天才会产生利润 所以i=1
res += Math.max(prices[i] - prices[i - 1] , 0);//只收集正利润
}
return res;
}
}
?55.?跳跃游戏?
求出最大覆盖范围
class Solution {
public boolean canJump(int[] nums) {
int cover = nums[0];
if(nums.length == 1) return true;
for(int i = 0; i <= cover; i++) {
cover = Math.max(i + nums[i], cover);
if(cover >= nums.length - 1)
return true;
}
return false;
}
}
?45.跳跃游戏II?
最少步数
?
class Solution {
public int jump(int[] nums) {
if(nums == null || nums.length == 0 || nums.length == 1)
return 0;
int cur = 0;
int next = 0;
int res = 0;
for(int i = 0; i < nums.length; i++) {
next = Math.max(i + nums[i], next);
if(i == cur) {
res++;
cur = next;
if(cur >= nums.length - 1) break;
}
}
return res;
}
}
?