【字节跳动】跳跃游戏

简介: 【字节跳动】跳跃游戏

1. 题目描述

建议,,,看懂即可

2. 题目分析

  1. 如果某一个作为起跳点的格子可以跳跃的距离是 3,那么表示后面 3 个格子都可以作为 起跳点。
  2. 可以对每一个能作为 起跳点 的格子都尝试跳一次,把 能跳到最远的距离 不断更新。
  3. 如果从这个 起跳点 起跳叫做第 1 次 跳跃,那么从后面 3 个格子起跳可以叫做第2次 跳跃。
  4. 所以,当一次 跳跃 结束时,从下一个格子开始,到现在 能跳到最远的距离,都 是下一次 跳跃 的 起跳点。
  5. 对每一次 跳跃 用 for 循环来模拟。
  6. 跳完一次之后,更新下一次 起跳点 的范围。
  7. 在新的范围内跳,更新 能跳到最远的距离。
  8. 记录 跳跃 次数,如果跳到了终点,就得到了结果。

3. 题目代码

public int jump(int[] nums) {
    int ans = 0;
    int start = 0;
    int end = 1;
    while (end < nums.length) {
      int maxPos = 0;
      for (int i = start; i < end; i++) {
        // 能跳到最远的距离
        maxPos = Math.max(maxPos, i + nums[i]);
      }
      start = end; // 下一次起跳点范围开始的格子
      end = maxPos + 1; // 下一次起跳点范围结束的格子
      ans++; // 跳跃次数
    }
    return ans;
  }


相关文章
|
3月前
|
算法
Leetcode第45题(跳跃游戏II)
这篇博客文章讨论了如何使用贪心算法解决LeetCode第45题“跳跃游戏II”,目的是找到使用最少跳跃次数到达数组末尾的策略。
100 8
Leetcode第45题(跳跃游戏II)
|
5月前
|
算法
LeetCode第55题跳跃游戏
LeetCode第55题"跳跃游戏"的解题方法,通过记录当前最远可达到的位置并判断每个位置是否可达以及能否到达末尾,有效解决了跳跃至数组末尾的可行性问题。
LeetCode第55题跳跃游戏
|
3月前
Leetcode第55题(跳跃游戏)
LeetCode第55题“跳跃游戏”要求判断在一个非负整数数组中,从第一个位置出发,是否能够到达最后一个位置,其中每个位置的元素代表可跳跃的最大长度。
35 0
|
5月前
|
算法
LeetCode第45题跳跃游戏 II
LeetCode第45题"跳跃游戏 II"的解题方法,通过一次循环和选择每个位置的最大可跳距离,有效减少了跳跃次数,简化了问题。
|
8月前
|
NoSQL Java 程序员
成功上岸!一路披荆斩棘腾讯6面面经,大厂远没想象中的难
随着互联网行业的蓬勃发展,越来越多的Java开发程序员渴望加入大公司,以拓宽自己的视野和提升技术水平。对于两年经验的开发者来说,要通过头部互联网公司如美团的面试并不容易,不仅需要掌握扎实的基础知识,还需要在面试中展现出独到的思路和解决问题的能力。
|
8月前
|
搜索推荐 开发者
小游戏矩阵搭建之路1:专门为女性玩家做个消除游戏
小游戏矩阵搭建之路1:专门为女性玩家做个消除游戏
95 0
|
算法
代码随想录算法训练营第三十二天 | LeetCode 122. 买卖股票的最佳时机 II、55. 跳跃游戏、45. 跳跃游戏 II
代码随想录算法训练营第三十二天 | LeetCode 122. 买卖股票的最佳时机 II、55. 跳跃游戏、45. 跳跃游戏 II
58 0
|
算法 安全 Swift
LeetCode - #55 跳跃游戏
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
|
算法
leetcode:45.跳跃游戏 II
给定一个非负整数数组,你最初位于数组的第一个位置。
81 0
|
算法
leetcode:55.跳跃游戏
给定一个非负整数数组,你最初位于数组的第一个位置。
77 0