首页 > 编程语言 >【教3妹学编程-算法题】1696. 跳跃游戏 VI

【教3妹学编程-算法题】1696. 跳跃游戏 VI

时间:2024-02-05 16:32:23浏览次数:27  
标签:queue 下标 nums int VI 得分 妹学 1696 dp

【教3妹学编程-算法题】1696. 跳跃游戏 VI_时间复杂度

3妹:好冷啊, 冻得瑟瑟发抖啦
2哥 : 没想到都立春了还这么冷啊~
3妹:暴雪、冻雨、大雨,这天气还让不让人活啦!!!
2哥 :哎,好多人都滞留的高铁站了,没法回家了
3妹:我还不知道今天怎么回家呢,惨。
2哥:3妹,要不别回去了吧,我们就地过年
3妹:切,这里更冷,每天抖啊抖,跳啊跳才能缓解寒冷,我们家那儿可是有暖气的。
2哥:好吧,回家也也要记得每天刷题啊,刚好今天的题目是跳跃的, 让我们先做一下吧~

【教3妹学编程-算法题】1696. 跳跃游戏 VI_数组_02

 1题目: 

给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。

一开始你在下标 0 处。每一步,你最多可以往前跳 k 步,但你不能跳出数组的边界。也就是说,你可以从下标 i 跳到 [i + 1, min(n - 1, i + k)] 包含 两个端点的任意位置。

你的目标是到达数组最后一个位置(下标为 n - 1 ),你的 得分 为经过的所有数字之和。

请你返回你能得到的 最大得分 。

示例 1:

输入:nums = [1,-1,-2,4,-7,3], k = 2
输出:7
解释:你可以选择子序列 [1,-1,4,3] (上面加粗的数字),和为 7 。
示例 2:

输入:nums = [10,-5,-2,4,0,3], k = 3
输出:17
解释:你可以选择子序列 [10,4,3] (上面加粗数字),和为 17 。
示例 3:

输入:nums = [1,-5,-20,4,-1,3,-6,-3], k = 2
输出:0

提示:

1 <= nums.length, k <= 10^5
-10^4 <= nums[i] <= 10^4

 2思路: 

【教3妹学编程-算法题】1696. 跳跃游戏 VI_时间复杂度_03

动态规划 + 双端队列,
每一个位置的最大值取决于前面 k 步的最大得分,再加上当前位置的得分,由此我们想到可以使用动态规划来解决这个问题。

用 dp[i]来表示到达位置 i 的最大得分。初始状态 dp[0]=nums[0],表示位置 0的得分是它本身的得分。状态转移方程是

dp[i]=max⁡{dp[j]}
其中 max⁡(0,i−k)≤j<i。

其中前 k 步的最大值,使用优先队列可以达到 O(n×log⁡n)的时间复杂度,使用双端队列可以达到 O(n)的时间复杂度。

 3java代码: 

class Solution {
    public int maxResult(int[] nums, int k) {
        int n = nums.length;
        int[] dp = new int[n];
        dp[0] = nums[0];
        Deque<Integer> queue = new ArrayDeque<>();
        queue.offerLast(0);
        for (int i = 1; i < n; i++) {
            while (queue.peekFirst() < i - k) {
                queue.pollFirst();
            }
            dp[i] = dp[queue.peekFirst()] + nums[i];
            while (!queue.isEmpty() && dp[queue.peekLast()] <= dp[i]) {
                queue.pollLast();
            }
            queue.offerLast(i);
        }
        return dp[n - 1];
    }
}

标签:queue,下标,nums,int,VI,得分,妹学,1696,dp
From: https://blog.51cto.com/u_6813689/9610495

相关文章

  • Docker:Failed to copy files, no space left on device
    主页个人微信公众号:密码应用技术实战个人博客园首页:https://www.cnblogs.com/informatics/问题描述在Mac上进行docker构建时,偶尔会遇到以下问题Failedtocopyfiles:userspacecopyfailed:write/var/lib/docker/volumes/xxx/_data/xxx.dbf:nospaceleftondevice......
  • 【纯干货】如何通过技术白嫖96编辑器vip或者企业模板?
    每次公众号排版都去找免费模板,找的头都秃了,但其实好多编辑器(秀米和这个一样)都可以白嫖,教程很简单(需要简单能看懂代码(认识阿拉伯字母就行))这个96编辑器一直在用,模板超级多,基本上不用再为排版发愁了,一个模板套着弄,直接填文字内容换图片就可以,其实免费的已经够用了,但如果有VIP那就更......
  • 【System Design Interview】笔记
    2024/02/04c1-c4 Chapter1:scalefromzerotomillionsofuserssingleserversetupDNSdomainnamesystemis3rdpartyservicethatparsesdomainnametointernetprotocalipaddress.OncetheIPaddressisobtained,HTTPrequestsaresentdirectly......
  • 苹果 Vision Pro 产地首次公布:原汁原味的中国制造丨 RTE 开发者日报 Vol.143
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表......
  • 将nginx交给service管理
    #!/bin/bash#chkconfig:23459999prot=80nginx=/usr/local/nginx/sbin/nginxcheck(){!$nginx-tq&&echo"致命错误:配置文件错误"&&exit}start(){checknetstat-tln|grep-q":80\>"&&echo"$prot端口被占用"......
  • DNS--智能地址解析(view视图)
    域名:xinenhui.comDNS服务器:192.168.198.128DNS1:192.168.198.129DNS2:192.168.198.146 1 简介使客户端就近访问DNS服务器来加速用户的访问速度 提高客户端体验不同的客户端使用同一个DNS服务器解析同一个域名得到不同的IP 2 修改主配置文件 设置view[root@localhost~]#vi......
  • service命令使用笔记
    一、简介#service--helpUsage:service[-h|-?]servicelistservicecheckSERVICEservicecallSERVICECODE[i32N|i64N|fN|dN|s16STR|null|fdf|nfdn|afdf]...Options:i32:Writethe32-bitintegerNintothes......
  • Development in a rootless enviroment
    HowtoinstallpackagesUsingbrew,Homebrew/LinuxbrewDownloadGithubRepositoryHomebrewfromLinkInstallitunder~/.homebrewWritethefilelocationtothebashrcfileexportPATH="[homepath]/.homebrew/bin:$PATH"Installlike:brewinst......
  • 雷军不再主讲小米手机发布会;苹果明确:Vision Pro 头显电池某些场景会降低其性能丨 RTE
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表......
  • Vim配置成类似source insight的IDE
    前言基本安装sudoapt-getinstallvimvim-scriptsvim-docvim-scripts是vim的一些基本插件,包括语法高亮的支持、缩进等等。1ctags+taglist安装配置1.1ctag作用ctags最先是用来生成C代码的tags文件,后来扩展成可以生成各类语言的tags,有些语言也有专有的tags生成工具......