classSolution{publicintmaxProfit(int[] prices){// 贪心,模拟if(prices.length <=1){return0;}int sum =0;for(int i =1; i < prices.length; i++){
sum +=Math.max((prices[i]- prices[i-1]),0);}return sum;}}
55. 跳跃游戏
classSolution{publicbooleancanJump(int[] nums){// 不要跳跃到0上,贪心。// 局部最优,全局最优// 最大覆盖位置if(nums.length <=1){returntrue;}int index =0;for(int i =0; i <= index; i++){// 这个如果不控制for循环结束条件会一直往前走,就不会停下了。
index =Math.max(i + nums[i], index);if(index >= nums.length -1){returntrue;}}returnfalse;}}
45.跳跃游戏II
classSolution{publicintjump(int[] nums){int cursize =0;// 当前覆盖int sum =0;int nextsize =0;//下一次覆盖for(int i =0; i < nums.length -1; i++){
nextsize =Math.max(nums[i]+i, nextsize);if(i == cursize){
sum++;
cursize = nextsize;}}return sum;}}