当前位置: 首页 > news >正文

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

瑟瑟发抖

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

吃瓜

题目:

给你一个下标从 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

思路:

思考

动态规划 + 双端队列,
每一个位置的最大值取决于前面 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)的时间复杂度。

java代码:

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

相关文章:

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

3妹&#xff1a;好冷啊&#xff0c; 冻得瑟瑟发抖啦 2哥 : 没想到都立春了还这么冷啊~ 3妹&#xff1a;暴雪、冻雨、大雨&#xff0c;这天气还让不让人活啦&#xff01;&#xff01;&#xff01; 2哥 :哎&#xff0c;好多人都滞留的高铁站了&#xff0c;没法回家了 3妹&#xf…...

解决C#中无限递归导致的System.StackOverflowException异常

目录 背景&#xff1a; 错误示例分析: 为什么是错误的&#xff1f; 正确的使用递归&#xff1a; 修改后的代码&#xff1a; 原理和原因&#xff1a; 结论&#xff1a; 背景&#xff1a; 在软件开发中&#xff0c;递归是一种常见的编程技术&#xff0c;它允许方法调用自…...

ASP.NET Core 预防开放式重定向攻击

写在前面 为预防钓鱼网站的常用套路&#xff0c;在进行 Web 应用程序的开发时&#xff0c;原则上应该将所有由用户提交的数据视为不可信。如果应用程序中包含了基于 URL 内容重定向的功能&#xff0c;需要确保这种类型的重定向操作只能在应用本地完成&#xff0c;或者明确判断…...

HashCat 恢复Excel、Word、PPT密码保姆教程

HashCat 恢复Excel、Word、PPT密码 一、流程 整体需要两个步骤 先用office2john.py获取下文件的hash值 python office2john.py 1.xlsx > hash这个命令需要你电脑有python环境&#xff0c;然后在cmd命令窗口中执行此命令就行 文件链接&#xff1a;https://github.com/magnu…...

flink实战--flink的job_listener使用解析

背景 生产环境可能有如下的需求:当一个flink作业提交完成或者是运行中不定时给我们触发某个接口或发送一个消息,然后我们在做其他的操作,尤其是batch作业。 flink的job_listener就可以满足我们监听flink任务提交和运行状态的需求,具体如何使用本文将全面介绍一下。 注册入…...

ASR 概述

前言 随着企业加强了与客户的线上沟通&#xff0c;企业越发依赖于虚拟助手、聊天机器人以及其他的语音技术&#xff0c;以实现与客户的高效互动。这几类人工智能&#xff0c;都是依赖于自动语音识别技术&#xff0c;简称为 ASR。ASR 涉及到将语音转换为文本&#xff0c;促使计…...

聊聊比特币----比特币地址

⽐特币地址是⼀个标识符&#xff08;帐号&#xff09;&#xff0c;包含27-34个字母数字拉丁字符&#xff08;0&#xff0c;O&#xff0c;I除外&#xff09;。地址可以以QR码形式表⽰&#xff0c;是匿名的&#xff0c;不包含关于所有者的信息。 地址⽰例&#xff1a;14qViLJfdG…...

(4)【Python数据分析进阶】Machine-Learning模型与算法应用-回归、分类模型汇总

线性回归、逻辑回归算法应用请参考: https://codeknight.blog.csdn.net/article/details/135693621https://codeknight.blog.csdn.net/article/details/135693621本篇主要介绍决策树、随机森林、KNN、SVM、Bayes等有监督算法以及无监督的聚类算法和应用PCA对数据进行降维的算法…...

Python 调用 OpenAI ChatGPT API

一、安装环境1. 安装python环境 $ pip install openai 2. 验证是否安装成功 方法1&#xff0c;bash命令验证 $ pip show openai 方法2&#xff0c;python脚本验证 import openai print(openai.__version__) 3. 找到你的 OpenAI API Key&#xff1a;进入OpenAI官网&#xff0…...

springboot155基于JAVA语言的在线考试与学习交流网页平台

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…...

echarts使用之地图(五)

1 基本使用 百度地图 API : 使用百度地图的 api , 它能够在线联网展示地图 , 百度地图需要申请 ak 矢量地图 : 可以离线展示地图 , 需要开发者准备矢量地图数据。本文使用该方式。 json格式的数据如下&#xff1a; 格式参照&#xff1a;GeoJSON <!DOCTYPE html&…...

【已解决】青龙面板依赖安装失败原因

青龙面板必须安装依赖&#xff0c;才可以执行脚本&#xff0c;这是不争的事实。 如果脚本跑不起来&#xff0c;就去看看依赖吧。 NodeJs 依赖如下 axios request canvas cheerio js-base64 dotenv magic tough-cookie ws7.4.3 require requests date-fns ts-md5 typescript j…...

[Python] 什么是KMeans聚类算法以及scikit-learn中的KMeans使用案例

什么是无监督学习&#xff1f; 无监督学习是机器学习中的一种方法&#xff0c;其主要目的是从无标签的数据集中发现隐藏的模式、结构或者规律。在无监督学习中&#xff0c;算法不依赖于任何先验的标签信息&#xff0c;而是根据数据本身的特征和规律进行学习和推断。无监督学习…...

在 iOS 上安装自定企业级应用

了解如何安装您的组织创建的自定应用并为其建立信任。 本文适用于学校、企业或其他组织的系统管理员。 您的组织可以使用 Apple Developer Enterprise Program 创建和分发企业专用的 iOS 应用&#xff0c;以供内部使用。您必须先针对这些应用建立信任后&#xff0c;才能将其打…...

【Linux C | I/O模型】Unix / Linux系统的5种IO模型 | 图文详解

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…...

C++设计模式-简单工厂模式,工厂方法模式,抽象工厂模式

目录 简单工厂模式&#xff0c;工厂方法模式&#xff0c;抽象工厂模式 附&#xff1a; 简单工厂模式&#xff0c;工厂方法模式&#xff0c;抽象工厂模式 简单工厂模式&#xff1a;根据字符串参数返回对象。 工厂方法模式&#xff1a;创建一维对象&#xff0c;即一个工厂创建…...

java处理ppt方案详解

需求 需要系统中展示的ppt案例有一个动态展示的效果&#xff0c;也就是要有动画的交互&#xff0c;要求支持浏览器直接打开预览 背景 目前已经实现了前端上传pptx文件&#xff0c;后端解析为png的图片&#xff0c;前端掉接口返回对应的图片&#xff0c;模拟播放ppt的效果 各种尝…...

鸿蒙4.0.0 安装minitouch

鸿蒙4.0.0 安装minitouch ubuntu 系统 minitouch 地址 https://github.com/DeviceFarmer/minitouch 因为 鸿蒙4.0.0 对应安卓12 API版本31 所以启动 minitouch 需要 STFService 地址 https://github.com/openstf/STFService.apk 到release下载最新的STFService.apk &…...

前端excel带样式导出 exceljs 插件的使用

本来用的xlsx和xlsx-style两个插件&#xff0c;过程一步一个坑&#xff0c;到完全能用要消灭好多bug。这时发现了exceljs&#xff0c;真香&#x1f600; 案例 <!DOCTYPE html> <html><head><meta charset"utf-8" /><meta name"view…...

用GOGS搭建GIT服务器

GOGS官网 Gogs: A painless self-hosted Git service 进入文件所在目录 cd /usr/local/develop 解压文件 tar -xvf gogs_0.13.0_linux_amd64.tar.gz 解压之后 进入gogs 目录 cd gogs 创建几个目录 userdata 存放用户数据 log文件存放进程日志 repositories 仓库根目…...

3个场景驱动策略:如何让Citra模拟器在你的硬件上火力全开

3个场景驱动策略&#xff1a;如何让Citra模拟器在你的硬件上火力全开 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/gh_mirrors/cit/citra 作为一款开源的任天堂3DS模拟器&#xff0c;Citra让无数经典游戏在PC上重获新生。但要让这款高…...

AI辅助开发新范式:让快马AI成为你的智能代码库与协作者

最近在整理自己的代码库时&#xff0c;发现一个痛点&#xff1a;随着项目积累&#xff0c;很多实用的代码片段散落在各处&#xff0c;虽然写了注释&#xff0c;但时间久了还是很难快速找到需要的部分。于是萌生了一个想法——开发一个AI辅助的代码片段管理工具。这个工具不仅能…...

疑似 GPT-6 曝光! OpenAI 联合创始人亲口爆料 Spud 新一代AI模型,并且拥有“大模型气味”!网友评论:它是第一个真正会“思考”的型号!

Spud &#xff0c;中文直译过来是“土豆”&#xff0c;这个命名方式也让小编想到了OpenAI 当时的 Strawberry (草莓)后来被命名为o1系列&#xff0c;那么&#xff0c;Spud 会是下一个o1吗&#xff1f;昨天&#xff0c;OpenAI总裁Greg Brockman在Big Technology Podcast上&#…...

Z-Image Turbo在工业设计中的应用:产品概念图生成

Z-Image Turbo在工业设计中的应用&#xff1a;产品概念图生成 1. 引言 工业设计师的日常工作中&#xff0c;最耗时但又最关键的环节是什么&#xff1f;答案往往是概念图的创作和渲染。传统的工作流程中&#xff0c;设计师需要先手绘草图&#xff0c;然后在专业软件中建模、渲…...

COMSOL 6.1版本皮秒多脉冲激光烧蚀模型:双温变形几何烧蚀模拟系统——电子晶格温度清晰解...

COMSOL 6.1版本 皮秒多脉冲激光烧蚀模型 模型内容&#xff1a;涉及双温模型&#xff0c;变形几何&#xff0c;烧蚀&#xff0c;皮秒脉冲热源&#xff0c;电子、晶格温度 优势&#xff1a;模型注释清晰明了&#xff0c;各个情况都有涉及可参考性极强&#xff0c;可以修改&#x…...

H5扫码不止‘扫一扫’:深入聊聊vue-qrcode-reader的闪光灯、相册选择和画框绘制这些高级玩法

H5扫码不止‘扫一扫’&#xff1a;深入聊聊vue-qrcode-reader的闪光灯、相册选择和画框绘制这些高级玩法 扫码功能早已成为移动端应用的标配&#xff0c;但大多数开发者止步于基础调用&#xff0c;忽略了用户体验的精细打磨。当产品经理提出"不仅要能用&#xff0c;还要好…...

SecGPT-14B镜像免配置实战:开箱即用的网络安全大模型推理方案

SecGPT-14B镜像免配置实战&#xff1a;开箱即用的网络安全大模型推理方案 1. 为什么选择SecGPT-14B 在网络安全领域&#xff0c;专业知识的获取往往需要多年经验积累。SecGPT-14B作为一款专注于网络安全的大语言模型&#xff0c;能够为安全工程师、开发人员和IT运维人员提供即…...

SEO推广系统与其他推广渠道的对比

SEO推广系统与其他推广渠道的对比 在现代商业环境中&#xff0c;各种推广渠道层出不穷&#xff0c;其中SEO推广系统和其他传统或新兴的推广渠道各有优劣。本文将从问题分析、原因说明、解决方法、注意事项和实用建议五个方面&#xff0c;深入探讨SEO推广系统与其他推广渠道的对…...

Java程序员终于有自己的AI Agent框架了:Spring AI Alibaba上手实录

Java程序员终于有自己的AI Agent框架了&#xff1a;Spring AI Alibaba上手实录 说实话&#xff0c;作为一个写了多年Java的人&#xff0c;看着Python那边各种AI框架、Agent工具层出不穷&#xff0c;心里是有点酸的。LangChain、AutoGPT、CrewAI…全是Python的天下。Java开发者想…...

基于stm32的楼道照明系统[单片机]-计算机毕业设计源码+LW文档

摘要&#xff1a;本文提出了一种基于STM32单片机的楼道照明系统设计方案。该系统以STM32为核心控制器&#xff0c;结合人体热释电感应模块、声音感应模块和光照检测模块&#xff0c;实现楼道照明的智能控制。通过实时检测人体存在、声音信号以及环境光照强度&#xff0c;系统能…...