Jump Game II

问题描述:

Given an array of non-negative integers, you are initially positioned at the first index of the array.

Each element in the array represents your maximum jump length at that position.

Your goal is to reach the last index in the minimum number of jumps.

For example:
Given array A = [2,3,1,1,4]

The minimum number of jumps to reach the last index is 2. (Jump 1 step from index 0 to 1, then 3 steps to the last index.)

测试代码:

class Solution {bool find_prior(vector<int> nums,vector<int> &jump,int pos){if(nums[pos]+pos>=nums.size()-1){jump[nums.size()-1] = jump[pos] + 1;return true;}for(int i=1;i<=nums[pos];i++){jump[pos+i] = min(jump[pos+i],jump[pos]+1);}return false;}
public:int jump(vector<int>& nums) {vector<int> jump(nums.size(),nums.size());jump[0] = 0;for(int j=0;j<nums.size()-1;j++){if(j>=1&&nums[j]<=nums[j-1]-1)continue;if(find_prior(nums,jump,j))break;}return jump[nums.size()-1];}
};

性能:

参考答案:

class Solution {
public:int jump(vector<int>& nums) {int n = nums.size();int reach = 0;int last_reach = 0;int step = 0;for(int i=0; i <= reach && i < n; ++i){if(i > last_reach){++step;last_reach = reach;}reach = max(nums[i] + i, reach);}if( reach < n-1)return -1;return step;}
};

性能:

45.jump游戏第二弹相关推荐

  1. 青瓷引擎之纯JavaScript打造HTML5游戏第二弹——《跳跃的方块》Part 3

    继上一次介绍了<神奇的六边形>的完整游戏开发流程后(可点击这里查看),这次将为大家介绍另外一款魔性游戏<跳跃的方块>的完整开发流程. (点击图片可进入游戏体验) 因内容太多,为 ...

  2. 青瓷引擎之纯JavaScript打造HTML5游戏第二弹——《跳跃的方块》Part 7(服务器连接数据处理)...

    继上一次介绍了<神奇的六边形>的完整游戏开发流程后(可点击这里查看),这次将为大家介绍另外一款魔性游戏<跳跃的方块>的完整开发流程. (点击图片可进入游戏体验) 因内容太多,为 ...

  3. C语言小游戏第二弹~1-100猜数字(无聊时候摸鱼必备)

    hello uu们,我们本期的小游戏是在1-100里面猜数字,无聊摸鱼必备小游戏哦~~ 闲话少谈,整活走起 首先我们可以简单的把这个程序主题分成两大块 1.游戏界面 2.猜数字过程主体 下面开始分步详 ...

  4. _28LeetCode代码随想录算法训练营第二十八天-贪心算法 | 122.买卖股票的最佳时机II 、55.跳跃游戏、45.跳跃游戏II

    _28LeetCode代码随想录算法训练营第二十八天-贪心算法 | 122.买卖股票的最佳时机II .55.跳跃游戏.45.跳跃游戏II 题目列表 122.买卖股票的最佳时机II 55.跳跃游戏 45 ...

  5. 55/45 Jump Game 跳跃游戏

    55 Jump Game 思路:贪心算法,每次记录可以跳到的最远距离. class Solution { public:bool canJump(vector<int>& nums ...

  6. LeetCode-笔记-45.跳跃游戏II-贪心算法

    LeetCode-笔记-45.跳跃游戏II-贪心算法 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后 ...

  7. 李飞飞AI100报告第二弹,提出14大AI机遇与挑战,82页pdf

    来源:Stanford 编辑:好困 David 「AI100」报告第二弹! 本次报告评估了2016年至2021年间人工智能的发展,涵盖14大问题,探讨了人工智能发展的关键领域. 主题是「人工智能在日常 ...

  8. u-boot移植第二弹——移植2012.10u-boot到RealARM210 cortex-A8开发板

    本次移植的目的: 1.u-boot能够跑起来 2.能够进入控制台打印出如下信息 本次移植是基于官方的u-boot版本是u-boot-2012.10,温馨提示,如果是新手可以完全按照这个步骤走就行.好, ...

  9. 45. 跳跃游戏 II golang 动态规划

    45. 跳跃游戏 II 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后一个位置. 示例: 输入: [ ...

最新文章

  1. 呵呵,又在这里开了个博客,现在已经有好几个了
  2. python 读取文件
  3. C语言实现链表栈 LinkedListStack(附完整源码)
  4. XSS攻击(出现的原因、预防措施......)
  5. 程序包android.support.annotation不存在_efcore技巧贴也许有你不知道的使用技巧
  6. 美团脱颖而出的经验_2016年脱颖而出的7个很棒的小开源项目
  7. notepad: 怎么在notepad里面,将字符串替换成换行
  8. haproxy acl访问限制IP
  9. 苹果Mac强大的采样器音源软件:Native Instruments Kontakt
  10. 互联网架构师祝大家中秋节快乐!快领红包了!
  11. java商城系统设计——秒杀
  12. 怎么彻底卸载cad2017_Win10系统怎么彻底卸载cad【图文教程】
  13. QT自定义按钮类(自定义图片,形状,点击特效)
  14. android mvvm
  15. TYVJ p1035 棋盘覆盖
  16. 旋转卡壳算法求最小外接矩形代码
  17. SAP标准价及实际价查看
  18. Kali Linux系统正确安装指南教程(一)MAC安装kail+Vmware Fusion详细教程(吐血本人测试10次)
  19. 用马克思主义看待现社会拜金主义价值观
  20. 谁动了我的奶酪之奶酪墙上的话。

热门文章

  1. GitChat优质文章-SpringBoot集成Elasticsearch
  2. 使用百度地图api根据网吧名称获取经纬度信息
  3. blockIO trace
  4. SAP物料与总账科目集成业务
  5. 上海亚商投顾:沪指逼近3300点 电力、光伏持续强势
  6. 【干货书】图神经网络导论,清华大学刘知远老师著作
  7. 运算放大器基本电路——11个经典电路
  8. 淘宝移动网络库全解析
  9. webSocket 实现消息推送、心跳、已读消息、加载更多等功能
  10. linux 删除变为空格