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

45. 跳跃游戏 II

       

题目给定一个数组,每个元素表示该位置能向后跳跃的最大步数(例如 nums[i] = j 表示从下标 i 最多可以跳到 i + j)。要求计算从数组起始位置到达末尾(下标 n-1)所需的最少跳跃次数。

解题思路采用贪心算法:在当前可到达范围内,尽可能延迟跳跃。具体来说:

  1. 维护当前能到达的最远位置
  2. 当遍历到当前步数能到达的边界时,才进行跳跃
  3. 每次跳跃时更新能到达的新边界 这样就能确保用最少的跳跃次数到达终点。

class Solution {
public:int jump(vector<int>& nums) {int n = nums.size();int mx_right = 0;//当前能到的最右端int cur_right = 0;//当前的最右端int ans = 0;for (int i = 0;i < n - 1;i++) {mx_right = max(mx_right,nums[i] + i);if (cur_right == i) {cur_right = mx_right;ans++;}}return ans;                          }
};

        时间复杂度:O(n)

        空间复杂度:O(1)

http://www.xdnf.cn/news/9784.html

相关文章:

  • Vue-05(自定义事件)
  • 汽车售后诊断数据流详细分析
  • linux 安装python
  • 性能测试工具选型指南
  • 二级域名怎么申请?二级域名申请费免费吗?
  • Android Studio 解决报错 not support JCEF 记录
  • 【C/C++】chrono简单使用场景
  • 国密SSL证书有哪些技术优势?
  • 基于qt5和stk10开发的互联调试
  • 黑马程序员C++核心编程笔记--4 类和对象--封装
  • Unity中的JsonManager
  • C++双线程交替打印奇偶数(活泼版)
  • 2024 CKA模拟系统制作 | Step-By-Step | 15、查看Pod日志
  • 委托从入门到入土
  • Elasticsearch的集群管理介绍
  • 乾元通渠道商中标青海省自然灾害应急能力提升工程基层防灾项目
  • 充电便捷,新能源汽车移动充电服务如何预约充电
  • DAY 14 SHAP库的绘制
  • 2024 CKA模拟系统制作 | Step-By-Step | 12、创建多容器Pod
  • 系统安装出现的问题 老毛桃
  • 【C++】SDL2环境安装及AI编码简单的俄罗斯方块游戏
  • 阿里云服务器邮件发送失败(dail tcp xxxx:25: i/o timeout)因为阿里云默认禁用 25 端口
  • List 源码翻译
  • LeetCode 215:数组中的第K个最大元素 - 两种高效解法详解
  • npm run build 报错:Some chunks are larger than 500 KB after minification
  • 2-向量可视化
  • 【C++高级主题】命令空间(三):未命名的命名空间
  • IT选型指南:电信行业需要怎样的服务器?
  • springboot配置cors拦截器与cors解释
  • 代理IP在云计算中的应用:技术演进与场景实践