首页 > 编程语言 >Leetcode 贪心算法之Jump Game II

Leetcode 贪心算法之Jump Game II

时间:2024-10-12 21:17:20浏览次数:8  
标签:Jump poisition nums int 位置 II far Game 跳跃

题目描述

给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。

每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处:

0 <= j <= nums[i]
i + j < n
返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]。

测试实例

输入: nums = [2,3,1,1,4]
输出: 2
解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。

思路分析

很典型的贪心算法,对于每一次跳跃,我需要使下一次能够跳跃到的位置最远,这样才会使所用的步数最短。
也就是说,我在i=0的地方开始跳跃,我可以达到的最远处是i+=num[i],但在这个过程中,我可能会经过一个num[i]较大的地方,使我能够到达更远的地方,这时我使我能够到达最远的地方更新。(思路很乱)

在图上我们具体看一下

代码展示

class Solution {
public:
    int jump(vector<int>& nums) {
        int far_poisition=0;//在每一个到达的位置能够跳到的最远位置
        int end=0;//这一次跳跃我可以跳到的最远处 
        int count=0;//总步数
        for(int i=0;i<nums.size()-1;i++){
            far_poisition=max(far_poisition,nums[i]+i);
            if(i==end){
                count++;
                end=far_poisition;
            }
        }
        return count;
    }
};

测试结果

在这里插入图片描述
原题跳转点here

标签:Jump,poisition,nums,int,位置,II,far,Game,跳跃
From: https://blog.csdn.net/scsdvsvf/article/details/142864580

相关文章

  • 力扣数据库1174. 即时食物配送 II
    一、数据配送表: Delivery+-----------------------------+---------+|ColumnName|Type|+-----------------------------+---------+|delivery_id|int||customer_id|int||order_date......
  • 454_四数相加Ii
    454_四数相加Ii【问题描述】给你四个整数数组nums1、nums2、nums3和nums4,数组长度都是n,请你计算有多少个元组(i,j,k,l)能满足:0<=i,j,k,l<nnums1[i]+nums2[j]+nums3[k]+nums4[l]==0示例一:输入:nums1=[1,2],nums2=[-2,-1],nums3=[-1,2......
  • INFO1113 / COMP9003 a prototype of the game
    INFO1113/COMP9003AssignmentDue:20October2024,11:59PMAESTThisassignmentisworth20%ofyourfinalgrade.TaskDescriptionInthisassignment,youwillcreateagameintheJavaprogramminglanguageusingtheProcessinglibraryforgraphics......
  • 454_四数相加Ii
    454_四数相加Ii【问题描述】给你四个整数数组nums1、nums2、nums3和nums4,数组长度都是n,请你计算有多少个元组(i,j,k,l)能满足:0<=i,j,k,l<nnums1[i]+nums2[j]+nums3[k]+nums4[l]==0示例一:输入:nums1=[1,2],nums2=[-2,-1],nums3=[-1,2......
  • Windows Server 2008R2服务器 IIS7.0 安装SSL证书并绑定https
    本例以阿里云服务器来解说,本服务器为WinodwsServer2008R2(一般现在至少是2012版本了)默认IIS为7.0第一步:在阿里云上申请好证书并下载IIS版本,下载后上传到服务器中,如下图:第二步:导入证书在服务器按Win+R键,打开运行。输入mmc,单击确定,打开Windows服务器控制台(MMC,MicrosoftMa......
  • pygame写一个黑客帝国屏保
    代码:#coding=utf-8importos,sys,re,timeimportpygameimportrandomfromwin32apiimportGetSystemMetricsfromtkinterimportmessagebox#pyinstaller-F-wpygame_heike.pypygame.init()pygame.display.set_caption("黑客帝国屏幕保护")percent=1scr......
  • iis网站数据库无法连接数据库
    IIS网站无法连接数据库的问题可能由多种原因导致,以下是一些常见的排查步骤和解决方法:检查数据库连接字符串:确认数据库服务器地址、端口、用户名和密码是否正确。检查是否有防火墙或安全组规则阻止了访问。确认数据库服务状态:确保数据库服务(如MySQL,SQLServer等)正在......
  • 毕设项目案例实战II基于Java+Spring Boot+MySQL的学生选课系统的设计与实现(源码+数据
    目录一、前言二、技术介绍三、系统实现四、论文参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末一、前言随着信息技术的飞速发展和教育信息化的不......
  • 毕设项目案例实战II基于SSM的健身房预约系统设计与实现(源码+数据库+文档)
    目录一、前言二、技术介绍三、系统实现四、论文参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末一、前言随着健康意识的日益增强,健身房已成为现代......
  • 代码随想录算法训练营 | 完全背包,518. 零钱兑换 II,377. 组合总和 Ⅳ,70. 爬楼梯 (进阶)
    完全背包题目链接:完全背包文档讲解︰代码随想录(programmercarl.com)视频讲解︰完全背包日期:2024-10-11想法:dp数组设置思路跟01背包一样,不同在遍历上,完全背包遍历背包大小是从weight[i]开始的(背包空间小于weight[i]就没有意义,不用考虑,直接用之前的对应数值就行了),从前往后遍历就能......