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

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

时间:2024-10-03 11:49:50浏览次数:9  
标签:游戏 nums int 随想录 II 跳跃

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;
    }
}

标签:游戏,nums,int,随想录,II,跳跃
From: https://www.cnblogs.com/wowoioo/p/18445531

相关文章

  • 题解:P9939 [USACO21OPEN] Acowdemia III B
    考虑贪心。遍历每只奶牛:如果它最多与一头奶牛相邻,那么什么都不会发生。如果它与两头以上的奶牛相邻,那么它与两侧的两头奶牛相邻。将答案递增\(1\)。否则,如果正好有两头相邻的奶牛,我们就把它们配对。也就是说,将这对奶牛插入一组。代码:#include<bits/stdc++.h>usingname......
  • 代码随想录算法训练营 | 491.递增子序列,46.全排列,47.全排列 II
    491.递增子序列题目链接:491.递增子序列文档讲解︰代码随想录(programmercarl.com)视频讲解︰491.递增子序列日期:2024-10-02想法:根据题目nums[i]的范围在-100到100,可以用数组做记录是否同一层使用过Java代码如下:classSolution{List<Integer>path=newArrayList<>();......
  • Leetcode 275. H 指数 II
    1.题目基本信息1.1.题目描述给你一个整数数组citations,其中citations[i]表示研究者的第i篇论文被引用的次数,citations已经按照升序排列。计算并返回该研究者的h指数。h指数的定义:h代表“高引用次数”(highcitations),一名科研人员的h指数是指他(她)的(n篇论文中)至......
  • The 2024 ICPC Asia East Continent Online Contest (II)
    A.GamblingonChoosingRegionals最差情况就是,强队都和你去一起。因此赛站越小,排名也一定越小。然后只要动态实现出每个学校最强的若干只队伍就好了。#include<bits/stdc++.h>usingnamespacestd;usingi32=int32_t;usingi64=longlong;#defineinti64using......
  • C++和OpenGL实现3D游戏编程【连载12】——游戏中音效的使用
    1、游戏中音效的使用前面我们实现了图片纹理的显示功能,是不是感觉到非常的简单。那么今天我们就继续说下游戏声音的实现。音效也是游戏的灵魂,只有搭配了美妙动听的音效以后,游戏才能令人耳目一新,与玩家产生良好的效果。音效文件最常用的可分为两种,分别为.wav和.mp3后缀的......
  • Java项目实战II基于Java+Spring Boot+MySQL的大创管理系统(源码+数据库+文档)
    目录一、前言二、技术介绍三、系统实现四、文档参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者一、前言在当前创新创业氛围浓厚的背景下,大学生创新创业项目(简称“大创”)如雨后春笋般涌现,为校园内外注入了无限活力。然而,项目......
  • Java项目实战II基于Java+Spring Boot+MySQL的免税商品优选购物商城(源码+数据库+文档)
    目录一、前言二、技术介绍三、系统实现四、文档参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者一、前言随着全球贸易的日益繁荣和消费者需求的多样化,免税商品购物已成为众多旅行者和消费者的热门选择。为了提供一个更加便捷......
  • leetcode刷题day33|动态规划Part02(62.不同路径、63. 不同路径 II、 343.整数拆分、96.
    62.不同路径机器人从(0,0)位置出发,到(m-1,n-1)终点。动规五部曲1、确定dp数组(dptable)以及下标的含义dp[i][j]:表示从(0,0)出发,到(i,j)有dp[i][j]条不同的路径。2、确定递推公式想要求dp[i][j],只能有两个方向来推导出来,即dp[i-1][j]和dp[i][j-1]。dp[i]......
  • SSM项目实战II基于Spring Boot的新闻资讯系统的设计与实现(开发文档+数据库+源码)
    目录一、前言二、技术介绍三、系统实现四、论文参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者一、前言前言随着互联网技术的迅猛发展,信息传播的速度日益加快,新闻资讯已成为人们日常生活中不可或缺的一部分。为了满足广大用......
  • SSM项目实战II基于SSM的建筑装修图纸管理平台(开发文档+数据库+源码)
    目录一、前言二、技术介绍三、系统实现四、论文参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末一、前言在快速发展的建筑装修行业中,图纸作为设计......