新闻详情

新闻详情

首页 / 资讯中心 / 详情

跳跃游戏系列

发布时间:2026/9/24 22:03:33来源:尧图网络
跳跃游戏系列
引言这两道题属于贪心经典题型核心都是基于数组元素代表最大跳跃长度两道题题干相近但目标不同一题判断是否可达终点一题求到达终点的最小跳跃次数。基础篇跳跃游戏 I约束起始在下标 0nums [i] 代表当前位置向后最大跳跃距离判断是否能够到达最后一个下标。思路 1正向贪心方法维护max_reach记录当前能跳到的最远下标。遍历数组不断更新最远可达位置若遍历到某个位置i max_reach说明无法到达该位置直接返回 false若max_reach n-1可提前返回 true。复杂度时间 (O(n))空间 (O(1))class Solution { public: bool canJump(vectorint nums) { int max_reach 0; int n nums.size(); for(int i 0; i n; i){ if(i max_reach) return false; // 当前位置不可达 max_reach max(max_reach, i nums[i]); if(max_reach n-1) return true; } return true; } };思路 2动态规划方法dp[i]表示下标i是否可达。初始化dp[0]true遍历每个位置如果当前位置可达则标记它后续能跳到的位置全部可达。复杂度时间 (O(n^2))空间 (O(n))大数据会超时仅理解用。bool canJump(vectorint nums) { int n nums.size(); vectorbool dp(n, false); dp[0] true; for(int i0;in;i){ if(!dp[i]) continue; for(int j1;jnums[i];j){ if(ij n-1) return true; dp[ij] true; } } return dp[n-1]; }进阶篇跳跃游戏 II约束起始在下标 0nums [i] 代表当前位置向后最大跳跃距离保证一定可以到达终点求到达最后下标的最小跳跃次数。思路 1区间贪心方法维护 3 个变量当前区间边界end、全局最远可达位置max_reach、跳跃次数step。遍历到区间边界end时代表必须起跳一次更新边界为全局最远位置。复杂度时间 (O(n))空间 (O(1))class Solution { public: int jump(vectorint nums) { int n nums.size(); if(n 1) return 0; int step 0; int end 0; int max_reach 0; for(int i 0; i n-1; i){ max_reach max(max_reach, i nums[i]); if(i end){ // 走到区间边界必须起跳 step; end max_reach; } } return step; } };思路 2反向贪心方法从终点向前搜索找到最靠左的、能够跳到当前终点的位置更新终点为此位置跳跃次数 1直到终点回到下标 0。复杂度时间 (O(n^2))空间 (O(1))int jump(vectorint nums) { int pos nums.size()-1; int step 0; while(pos 0){ // 从左往右找第一个能跳到pos的下标 for(int i0; ipos; i){ if(i nums[i] pos){ pos i; step; break; } } } return step; }总结题号题目约束最优解法核心变量55跳跃游戏 I判断能否到达终点正向贪心max_reach45跳跃游戏 II求最小跳跃次数保证可达区间贪心end、max_reach、stepI只关心能不能到达 → 贪心维护最远可达下标II求最少跳跃次数 → 区间贪心到达区间边界才计数
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

汽车电子底层软件开发:AUTOSAR与CAN总线实战解析 2026/9/24 23:59:54

汽车电子底层软件开发:AUTOSAR与CAN总线实战解析

1. 这门“汽车电子底层软件开发就业课”到底在教什么?——不是写个LED闪烁就能上岗的很多人看到“汽车电子底层软件开发就业课”这个标题,第一反应是:不就是嵌入式C语言单片机CAN通信?刷几道LeetCode、调通一个STM32 CAN收发例程&…

阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战 2026/9/24 23:59:54

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署 2026/9/24 23:59:54

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

阅读更多 →
AI元人文:从工具使用到思维重构的深度探索 2026/9/24 23:59:54

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

阅读更多 →
《AI Agent 场景应用 - MobileOpenClaw》第5-9节:会话上下文细化处理实战指南 2026/9/24 23:59:47

《AI Agent 场景应用 - MobileOpenClaw》第5-9节:会话上下文细化处理实战指南

文档教程后端 【免费下载链接】CodeGuide :books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总,旨在为大家提供一个清晰详细的学习教程,侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助,请给予支持(关注、…

阅读更多 →
写出来的,和没写的——七个模块,一副骨头 2026/9/24 23:59:47

写出来的,和没写的——七个模块,一副骨头

「合金日记」第 85 篇 「小艾说」第 34 期 幕后弧(换弧开篇) 从「写谁」转向「怎么写」 专栏连载中 前篇:《听漏了,还是听深了——一个 a,一句禅》 模块 骨架 沉默 对位 骨头 没看过前篇也能读 没看过前八十…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞