代码随想录算法训练营 | 122.买卖股票的最佳时机II,55. 跳跃游戏,45.跳跃游戏II,1005.K次取反后最大化的数组和

122.买卖股票的最佳时机II
题目链接:122.买卖股票的最佳时机II
文档讲解︰代码随想录(programmercarl.com)
视频讲解︰买卖股票的最佳时机II
日期:2024-10-03

想法:本来还在想什么时候买股票,结果只需要考虑每天的正收益累加就是最大的收益了。
Java代码如下:

class Solution {
    public int maxProfit(int[] prices) {
        int res = 0;
        for(int i = 1; i < prices.length; i++) {
            res += Math.max((prices[i] - prices[i - 1]), 0);
        }
        return res;
    }
}

55. 跳跃游戏
题目链接:55. 跳跃游戏
文档讲解︰代码随想录(programmercarl.com)
视频讲解︰跳跃游戏
日期:2024-10-03

想法:用i + nums[i]得到最大的可跳跃范围cover,在可跳跃范围里找更大的范围,直到能包含终点。
Java代码如下:

class Solution {
    public boolean canJump(int[] nums) {
        int cover = 0;
        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
题目链接:45.跳跃游戏II
文档讲解︰代码随想录(programmercarl.com)
视频讲解︰跳跃游戏II
日期:2024-10-03

想法:记录当前这一步能跳的范围和下一步的范围,当走到当前这一步尽头时没能到终点,步数加一,进入下一步。
Java代码如下:

class Solution {
    public int jump(int[] nums) {
        int count = 0;
        int cur = 0;
        int next = 0;
        for(int i = 0; i < nums.length; i++) {
            next = Math.max(i + nums[i], next);
            if(i == cur) {
                count++;
                cur = next;
                if(next >= nums.length - 1) break;
            }
        }
        return count;
    }
}

1005.K次取反后最大化的数组和
题目链接:1005.K次取反后最大化的数组和
文档讲解︰代码随想录(programmercarl.com)
视频讲解︰K次取反后最大化的数组和
日期:2024-10-03

想法:排序数组,负数反转,如果负数不够就根据剩下的次数,为奇数则再次排列翻转最小的,为偶数则不变。
Java代码如下:

class Solution {
    public int largestSumAfterKNegations(int[] nums, int k) {
        Arrays.sort(nums);
        for(int i = 0; i < nums.length && k > 0; i++) {
            if(nums[i] < 0) {
                nums[i] = -nums[i];
                k--;
            }
        }
        if(k % 2 == 1) {
            Arrays.sort(nums);
            nums[0] = -nums[0];
        }
        int sum = 0;
        for(int num : nums) {
            sum += num;
        }
        return sum;
    }
}
posted @ 2024-10-03 11:56  漪欢酒  阅读(3)  评论(0编辑  收藏  举报