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

本文共 1003 字,大约阅读时间需要 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.

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.)

Solution:

用动态规划DP的观点来实现。DP[i]代表到达i的最小跳数,可以证明DP是一个递增的数组,故可以快速剪枝。每次循环只需要尽量找到最小的DP[k],使其满足k+A[k]>=n。

class Solution {public:    int jump(int A[], int n) {        if(n <= 1) return 0;        int *dp = new int[n + 1];        for(int i=1;i
< i;j++) if(A[j] + j >= i) { if(dp[j] + 1 < dp[i]) { dp[i] = dp[j] + 1; break; } } } return dp[n - 1]; }};

转载于:https://www.cnblogs.com/changchengxiao/p/3594701.html

你可能感兴趣的文章
一次 Mysql 字符集的报错,最后让我万马奔腾!!!
查看>>
cmd 里面运行git提示“不是内部或外部命令,也不是可运行的程序”的解决办法...
查看>>
给网页标题添加小图标
查看>>
Effective Scala
查看>>
Tasks and jobs
查看>>
python小程序之一
查看>>
数据解析
查看>>
Spring Ioc原理
查看>>
关于深拷贝与浅拷贝的一些简单说明
查看>>
TCP三次握手和四次握手
查看>>
js 鼠标事件
查看>>
AnsiString用法(转)
查看>>
DP E - Cheapest Palindrome
查看>>
用TTL线在CFE环境下拯救半砖wrt54g路由器
查看>>
soundpool
查看>>
JEECG前后端分离UI框架实战版本抢先体验(ng2-admin+Angular4+AdminLTE+WebStorm)
查看>>
Web基础--JavaScript入门
查看>>
HTML5冲刺
查看>>
OpenJudge计算概论-完美立方【暂时就想到了枚举法了】
查看>>
A Knight's Journey
查看>>