题目的链接在这里:https://leetcode-cn.com/problems/jump-game-ii/
- 题目大意
- 一、示意图
- 二、解题思路
- 动态规划
题目大意 给你一个非负整数数组 nums ,你最初位于数组的第一个位置。
你的目标是使用最少的跳跃次数到达数组的最后一个位置。
假设你总是可以到达数组的最后一个位置。
一、示意图 二、解题思路
动态规划动态规划
代码如下:
class Solution { public int jump(int[] nums) { //这里就变成了 不管怎么样都是能到最后的位置的 但是是需要最少的跳跃次数 //还是从后往前吗 int[] dp=new int[nums.length]; //dp[i]表示到这个位置的最少跳跃次数 他就是 dp[i]之前的位置 加一 一下子列举出来就行 判断哪个位置只要大于就可以 dp[0]=0; for(int i=1;i=0;j--){ //就从后往前判断 首先需要判断这个位置能跳到对应的i点 if(nums[j]>=(i-j)){ //说明可以跳到 那就找最小值 min=Math.min(min,dp[j]+1); } } dp[i]=min; } //然后就返回最后的 return dp[nums.length-1]; } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)