首页 > 其他分享 >跳跃游戏2

跳跃游戏2

时间:2023-12-01 20:55:55浏览次数:30  
标签:end 游戏 nums int max 跳跃 边界

跳跃游戏2

难度 : 简单 | 中等 | 困难 ------------------- 用时:39分钟(第一次) ------------------- 作题日期:2023-12-01
ps: 本人理解有限,以下是自我理解,官方和大佬有更完整和详细的解析!!!

题目描述

  • 题目描述
    给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。
    每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处:
        [1] 0 <= j <= nums[i] 
        [2] i + j < n
    返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]。
    
  • 案例演示
    示例 1:
    
    输入: nums = [2,3,1,1,4]
    输出: 2
    解释: 跳到最后一个位置的最小跳跃数是 2。
        从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。
    
    示例 2:
    
    输入: nums = [2,3,0,1,4]
    输出: 2
    
  • 提示
    1 <= nums.length <= 10^4
    0 <= nums[i] <= 1000
    题目保证可以到达 nums[n-1]
    

代码及解析

贪心

正向查找可到达最大距离,用max去维护最大距离,end用来表示边界,不断去遍历数组并且维护max最大长度,当i==end(边界)时需要跳一步 计数器count++,当end>len(数组长度)时说明当前这一步已到达n-1,所以直接跳出循环返回结果即可。

class Solution {
   public  int jump(int[] nums) {
       int count = 0;//跳跃次数
        int max = 0;//目前最大边界
        int len = nums.length;
        int end = 0;//跳跃边界
        for (int i = 0; i < len-1; i++) {
            max = Math.max(max, i+nums[i]);//更新可以跳到最远的距离
            if(i==end){//遇到边界需要跳跃一次
                count++;
                end = max; //更新边界,
            }
            if(end>=len-1){//边界超过数组长度
                break;
            }
        }
        return count;
    }
}

标签:end,游戏,nums,int,max,跳跃,边界
From: https://www.cnblogs.com/kckte66/p/17870856.html

相关文章

  • 《三国杀》完成鸿蒙原生应用开发,更多游戏品类加入鸿蒙生态
    近日,作为鸿蒙生态游戏先锋合作伙伴之一,游卡网络宣布已完成《三国杀》系列游戏鸿蒙原生应用开发,成为鸿蒙生态首款TOP级桌游卡牌类标杆游戏。作为一个国民级IP,游卡《三国杀》系列游戏与华为游戏中心的深度合作已逾10年,在今年HDC上更荣获了“鸿蒙生态先锋游戏”等重要奖项。依托鸿蒙......
  • 新火种AI | 年烧掉300多亿,张一鸣终究弃了游戏押注AI
    作者:文子张一鸣花6年时间证明:一条路行不通,就换一条路走。游戏终成过往,组建AI新团六年尝试,氪了几百亿,字节游戏终究还是停止了跳动。11月27日,字节跳动官方亲自下场证实,旗下游戏业务朝夕光年将进行大规模业务收缩,对已上线且表现良好的游戏,会在保证运营的前提下寻求剥离;对还未上线的项......
  • 用爱发电,分享快乐,真·免费GM公益服游戏!
    前言首先,我就直奔主题啦,下文中的“网络游戏”和“H5小游戏”是我架设的所有公益服游戏,快来看看有你喜欢的游戏没~如果游戏链接失效了,您可以文末点击“阅读原文”或者直接访问最新的游戏列表:https://echeverra.cn/h5game。还有我的公众号echeverra也会第一时间发布,所有游戏的......
  • Google Play 允许区块链游戏和 NFT 应用进入平台
    为GameFi用户在地域分布与手机机型分布方面与GooglePlay 有众多契合之处:地域分布:东南亚地区用户占比最大,2022年上半年东南亚用户占比达到41%其次是北美和西欧地区用户,2022年上半年占比分别为16%和15%发展中国家用户占比也在快速增长,如菲律宾、越南、印度等机......
  • 开发案例分享:万能卡片也能用来玩游戏
     一、前言作为一名开发爱好者,从大了讲,我学习并进行HarmonyOS相关开发是为了能为鸿蒙生态建设尽一份绵薄之力,从小了讲,就是为了自己的兴趣。而万能卡片是一个让我非常感兴趣的东西。很多时候我跟别人解释什么是万能卡片,都会这么说:"万能卡片能实现让你在不用打开app的前提下,在桌......
  • SQL-聚合函数-550. 游戏玩法分析
    预备知识:1.date_add函数是一个用于在日期上添加指定时间间隔的函数,它的一般语法如下:DATE_ADD(date,INTERVALexpressionunit)date是指定的日期。expression是一个表示要添加的值的表达式。unit是时间单位,例如YEAR、MONTH、DAY、HOUR、MINUTE、SECOND等。例如:......
  • 跳跃游戏
    跳跃游戏难度:简单|中等√|困难-------------------用时:36分钟(第一次)-------------------作题日期:2023-11-30ps:本人理解有限,以下是自我理解,官方和大佬有更完整和详细的解析!!!题目描述题目描述给你一个非负整数数组nums,你最初位于数组的第一个下标......
  • 基于Python的BlackJack游戏项目设计与实现——LW
    本篇论文介绍了基于Python的Blackjack游戏的设计和实现。该游戏是一款经典的赌博游戏,玩家可以在游戏中与电脑进行对战。在系统设计方面,本文首先对需求进行了分析,并采用了面向对象的方法进行了系统的设计。在客户端模块设计中,使用了Pygame库进行图形界面的实现,同时采用了多线程技术......
  • 游戏中模型动画的几种实现方式
    游戏内动画的实现方式一般有这几种:骨骼动画顶点动画材质动画CPU蒙皮动画骨骼动画骨骼动画是一种基于骨骼系统的动画技术,它通过对骨骼进行变换来控制模型的姿态和动作。在骨骼动画中,模型通常被分解成多个部分,每个部分都与一个或多个骨骼相连,通过对骨骼进行旋转、平移、缩放等变换,可......
  • 多开工具对网络游戏安全性的评估与加固
    多开工具对网络游戏安全性的评估与加固随着网络游戏的普及和发展,一些玩家为了方便或者获得不正当利益,开始使用多开工具同时登录多个游戏账号。然而,多开工具的使用可能会对网络游戏的安全性造成一定的威胁,因此有必要对其进行评估并采取相应的加固措施。首先,对于多开工具的评估需要......