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

力扣Leetcode:45. 跳跃游戏 II(C++)

题目链接

https://leetcode-cn.com/problems/jump-game-ii/

题目描述

给你一个非负整数数组 nums ,你最初位于数组的第一个位置。

数组中的每个元素代表你在该位置可以跳跃的最大长度。

你的目标是使用最少的跳跃次数到达数组的最后一个位置。

假设你总是可以到达数组的最后一个位置。

思路

动态规划,dp[i]代表以到达数组i位置时的最少跳跃次数。

  • 初始:dp[i]=0 if i==0 else ∞
  • 状态转移:从位置i出发若能最多走j步,那么根据dp[i]的值可以更新dp[i+1] … dp[i+j]的值。

时间复杂度:若数组长度为N,数组元素平均大小为M,则时间复杂度为O(MN)。存在更优的解法,后续研究研究。

代码

class Solution {
public:
    int jump(vector<int>& nums) {
        int len=nums.size(),dp[len];
        dp[0]=0;
        for(int i=1; i<len; i++) {
            dp[i]=99999;
        }
        for(int i=0; i<len; i++) {
            for(int j=1; j<=nums[i] && i+j<len; j++) {
                dp[i+j]=min(dp[i+j], dp[i]+1);
            }
        }
        return dp[len-1];
    }
};

相关文章:

  • 力扣Leetcode:3. 无重复字符的最长子串(C++、Python)
  • 一只狼与羊的爱情(思考栏首篇)
  • 2020计算机专业保研夏令营面经:复旦计算机(含机考题目详细题解)
  • 用JMX管理你的web应用
  • 高级人工智能.Modus Pones定理完备性证明(详细)
  • 高级人工智能.归结原理完备性证明(详细)
  • 年前的高中同学聚会
  • 力扣Leetcode:45. 跳跃游戏 II(Python)
  • JMX入门之StandardMBean HelloWord
  • 力扣Leetcode:1. 两数之和(C++、Python、Java)
  • 最长公共子序列
  • 国科大.图像处理.期末复习笔记手稿
  • 喝茶减少电脑对自身的伤害
  • 2020计算机专业保研夏令营面经:南科大计算机
  • 无耻的愤怒
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 【前端学习】-粗谈选择器
  • 2017 前端面试准备 - 收藏集 - 掘金
  • angular组件开发
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • es6--symbol
  • Golang-长连接-状态推送
  • Java 网络编程(2):UDP 的使用
  • JavaScript 基础知识 - 入门篇(一)
  • Java知识点总结(JavaIO-打印流)
  • js数组之filter
  • mysql_config not found
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Python中eval与exec的使用及区别
  • Redux系列x:源码分析
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • vue-router 实现分析
  • 闭包,sync使用细节
  • 基于HAProxy的高性能缓存服务器nuster
  • 通过git安装npm私有模块
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​马来语翻译中文去哪比较好?
  • ###C语言程序设计-----C语言学习(6)#
  • #图像处理
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (4)logging(日志模块)
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (C语言)逆序输出字符串
  • (多级缓存)多级缓存
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (算法)Game
  • (算法)N皇后问题
  • (一)基于IDEA的JAVA基础1
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation