博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetcode]Jump Game
阅读量:4689 次
发布时间:2019-06-09

本文共 1083 字,大约阅读时间需要 3 分钟。

问题叙述性说明:

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.

基本思路:

从每一个可达的节点产生新的可达节点。

依次类推。但用一个变量head记录当前可达最远的位置。对于i+A[i] < head 能够剪枝。

请见代码。

代码:

bool canJump(int A[], int n) {  //C++        vector
record(n,0); record[0] = 1; if(n == 1) return true; int head = 0; for(int i =0; i < n; i++) { if(record[i] == 1 && i+A[i] > head) { for(int j = head-i+1; j <= A[i]; j++) { if(i+j == n-1) return true; record[i+j] = 1; } head = i+A[i]; } } return false; }

版权声明:本文博客原创文章,博客,未经同意,不得转载。

转载于:https://www.cnblogs.com/mfrbuaa/p/4658325.html

你可能感兴趣的文章
什么是缓冲,引入缓冲的原因是什么?
查看>>
不把DB放进容器的理由
查看>>
OnePage收集
查看>>
Java parseInt()方法
查看>>
yahoo的30条优化规则
查看>>
[CCF2015.09]题解
查看>>
[NYIST15]括号匹配(二)(区间dp)
查看>>
json_value.cpp : fatal error C1083: 无法打开编译器生成的文件:No such file or directory
查看>>
洛谷 P1101 单词方阵
查看>>
Swift DispatchQueue
查看>>
C#和JAVA 访问修饰符
查看>>
集合框架
查看>>
小甲鱼OD学习第1讲
查看>>
【转】简述生成式对抗网络
查看>>
HDU-1085 Holding Bin-Laden Captive-母函数
查看>>
php提示undefined index的几种解决方法
查看>>
轻量级原生 ajax 函数,支持 get/array post/array post/json
查看>>
LRJ
查看>>
Struts2环境搭建
查看>>
Linux: Check version info
查看>>