买卖股票的最佳时机II
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;
}
跳跃游戏
public boolean canJump(int[] nums) {
int cover=0;
for(int i=0;i<=cover;i++){
cover=Math.max(cover,nums[i]+i);
if(cover>=nums.length-1)return true;
}
return false;
}
注意这个覆盖范围
跳跃游戏II
public int jump(int[] nums) {
if(nums.length==0||nums.length==1)return 0;
int res=0;
int curCover=0;
int nextCover=0;
for(int i=0;i<nums.length;i++){
nextCover=Math.max(nextCover,nums[i]+i);
if(nextCover>=nums.length-1){
res++;
break;
}
if(curCover==i){
curCover=nextCover;
res++;
}
}
return res;
}
k次取反后最大化的数组和
public int largestSumAfterKNegations(int[] nums, int k) {
int res=0;
Arrays.sort(nums);
for(int i=0;i<nums.length&&k>0;i++){
if(nums[i]<0){
k--;
nums[i]=-nums[i];
}
}
if(k%2==1){
Arrays.sort(nums);
nums[0]=-nums[0];
}
for(int i=0;i<nums.length;i++){
res+=nums[i];
}
return res;
}