// 贪心思路classSolution{publicintmaxProfit(int[] prices){int result =0;for(int i =1; i < prices.length; i++){
result +=Math.max(prices[i]- prices[i -1],0);}return result;}}
55 跳跃游戏
classSolution{publicbooleancanJump(int[] nums){if(nums.length ==1){returntrue;}//覆盖范围, 初始覆盖范围应该是0,因为下面的迭代是从下标0开始的int coverRange =0;//在覆盖范围内更新最大的覆盖范围for(int i =0; i <= coverRange; i++){
coverRange =Math.max(coverRange, i + nums[i]);if(coverRange >= nums.length -1){returntrue;}}returnfalse;}}
45 跳跃游戏II
/ 版本二
classSolution{publicintjump(int[] nums){int result =0;// 当前覆盖的最远距离下标int end =0;// 下一步覆盖的最远距离下标int temp =0;for(int i =0; i <= end && end < nums.length -1;++i){
temp =Math.max(temp, i + nums[i]);// 可达位置的改变次数就是跳跃次数if(i == end){
end = temp;
result++;}}return result;}}