Jump Game II
来源:互联网 发布:空总激光美容中心 知乎 编辑:程序博客网 时间:2024/06/05 10:22
一开始写了一个O(n^2)的方法,大数据果断超时
代码如下:
class Solution {public: int jump(int A[], int n) { // Start typing your C/C++ solution below // DO NOT write int main() function int dp[n]; memset(dp,0x7f7f7f7f,sizeof(dp)); dp[0]=0; for(int i=0;i<n;i++) for(int j=0;j<i;j++){ if(canReach(A,j,i)) dp[i]=min(dp[i],dp[j]+1); } return dp[n-1]; } bool canReach(int A[],int i,int j){ if(A[i]+i>=j) return true; return false; }};这里也有需要注意的地方,比如说dp的初值的设置,0x7f,会把每个单元都设置成7f。
最后参考了一下discuss,发现第一个人给出的解法非常经典:
class Solution {public: int jump(int A[], int n) { // Start typing your C/C++ solution below // DO NOT write int main() function int last=0,end=0,res=0; for(int i=0;i<n;i++){ if(i>last){ res++; last=end; } end=max(A[i]+i,end); } return res; }};last用于记录该点可以到达的最终的位置,可以利用i->last得到下一次能够得到的最大的位置end。当i超过last的时候,说明需要一步跳跃。
- Jump Game &Jump Game II
- Jump Game/Jump Game II
- LeetCode: Jump Game II
- LeetCode Jump Game II
- LeetCode: Jump Game II
- [Leetcode] Jump Game II
- [LeetCode] Jump Game II
- [Leetcode] Jump Game ii
- leetcode Jump Game II
- Jump Game II
- Jump Game II
- Jump Game II
- leetcode Jump Game II
- [LeetCode]Jump Game II
- Jump Game II
- Jump Game II
- Jump Game II
- Jump Game II
- 剑指offer 五
- 用html5实现的购物车拖拽特效
- 修改mantis显示为中文页面
- 简单的Tween动画
- C/C++常用头文件及函数汇总
- Jump Game II
- c++设计模式--观察者模式
- How to think like a Computer Scientist: 课后习题第十七章4
- toj3071 BFS_模板
- 0915土豆视频之"_CGImageSourceCopyPropertiesAtIndex", referenced from:
- PHP结合JAVA的开发技术 LAJP
- 关于MotionEvent.ACTION_UP无法被响应的问题
- 乐杨俊:div实现阴影效果(适应各个浏览器)
- OGR读取GML文件