LeetCode (45) Jump Game II
2015-09-13 10:00
501 查看
题目
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.)
分析
该题目是LeetCode 55 Jump Game的延伸题目, 不仅需要判断能否到达最终地点,而且需要计算出进行的最小跳数。该题目,调试了几次都没AC,最终参考别人的思想才过,羞愧。。。
ret:目前为止的jump数
curRch:从A[0]进行ret次jump之后达到的最大范围
curMax:从0~i这i+1个A元素中能达到的最大范围
当curRch < i,说明ret次jump已经不足以覆盖当前第i个元素,因此需要增加一次jump,使之达到
记录的curMax。
AC代码
class Solution { public: int jump(vector<int>& nums) { int ret = 0; int curMax = 0; int curRch = 0; int n = nums.size(); for(int i = 0; i < n; i ++) { if(curRch < i) { ret ++; curRch = curMax; } curMax = max(curMax, nums[i]+i); } return ret; } };
GitHub测试程序源码
相关文章推荐
- IO的异常处理方式
- 单链表(五)——链表的排序
- 好玩的东西——一个代码片段
- LeetCode (45) Jump Game II
- HTTP缓存相关头
- 几种算法思想
- CCF 最优配餐【暴力BFS】
- 另类过滤外国浏览者
- centos 特殊权限 各种搜索命令 lsattr ,chattr,suid,sgid,sbit,file,type是否是内置命令,stat文件属性 ,whereis,locate,find,ln 内部命令和外部命令 第五节课
- 计算两个GPS坐标的距离方法 - Java语言
- ios-清除本地缓存(三种方式)
- Iterator抽取迭代基类/Memento抽取备忘管理类/Interpreter终结非终结解释
- 单链表(四)——链表的反转
- java 集装箱 arraylist 用法
- 常见linux命令释义(第六天)——shell环境变量
- Strut2常规配置属性
- IOS之Core Foundation框架和Cocoa Foundation框架区别
- LeetCode----House Robber
- 个人学习笔记---linux内核同步办法的选择
- JVM内存管理深入垃圾收集器与内存分配策略