[C++]LeetCode: 103 Jump Game (局部最优和全局最优法)
来源:互联网 发布:php程序员职业寿命 编辑:程序博客网 时间:2024/06/05 04:45
题目:
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.
Determine if you are able to reach the last index.
For example:
A = [2,3,1,1,4]
, return true
.
A = [3,2,1,0,4]
, return false
.
思路:动态规划求解,我们维护两个变量,一个局部最优,一个全局最优。一个表示到目前为止我们能达到的最远距离,即local = A[i]+i, 另外一个是当前一步出发能跳到的最远距离,global = max(global, local). 确定了递推关系,递推终止条件,达到数组末尾,如果global > n-1, 说明我们可以用抵达数组的末尾(global表示最大距离,我们可以选择刚好的步伐达到末尾)。
复杂度:遍历一次,O(N),空间O(1)
Attention:
1. 空数组,返回false
if(n == 0) return false;2. 跳跃时,我们需满足两个条件,i < n && i <= reach, 我们不能够超出全局的最远距离。
for(int i = 0; i < n && i <= reach; i++)AC Code:
class Solution {public: bool canJump(int A[], int n) { if(n == 0) return false; int reach = 0; //全局最远距离 for(int i = 0; i < n && i <= reach; i++) { reach = max(A[i]+i, reach); } if(reach >= n-1) return true; else return false; }};
0 0
- [C++]LeetCode: 103 Jump Game (局部最优和全局最优法)
- [C++]LeetCode: 104 Jump Game II (局部最优和全局最优法)
- matlab局部最优和全局最优算法
- 动态规划之-用局部最优和全局最优实现时间优化
- BZOJ 1058: [ZJOI2007]报表统计 STL 维护全局和局部最优值
- Jump Game 和Jump Game II---LeetCode
- 【C++】【LeetCode】55. Jump Game
- 最优冒泡法排序(C语言)
- matlab求解全局最优(初步介绍)
- LeetCode(55)Jump Game
- [leetcode-45]Jump Game II(c)
- 8---LeetCode【Jump Game】|C语言|
- matlab 全局最优算法 GlobalSearch
- matlab 全局最优算法 GlobalSearch
- 徘徊:逃离局部最优点
- 徘徊:逃离局部最优点
- 最优方向法(MOD)
- c全局和局部变量
- oc笔记1.1
- 白话大数据——到底什么是大数据,大数据的价值是什么?
- Android学习之路以及如何利用Android应用来赚钱
- SCN(scn与时间之间的转换)
- 坑爹Genymotion升级VirtualBox问题
- [C++]LeetCode: 103 Jump Game (局部最优和全局最优法)
- CButtonST使用技巧(一)
- linux mint设置阿里的DNS,提高网络响应速度
- c++ 函数模版,类模版,实例化,具体化,模版作参数,模版的友元
- 搭建Git服务器
- ACM进阶指南
- 用Quick3.3简单开发微信打飞机03 添加爆炸动画和子弹与敌机的碰撞
- JDBC批量插入txt文件中的内容到数据库
- 选择项目名称右键点击properties即可以修改当前项目jdk 的编码