跳跃游戏二

在这里插入图片描述

  • 方法一:(双指针法)此题参考跳台阶问题,题目要求求到达最后一个点的最小跳跃次数,那么我们就可以从最后一个往前推,先看谁能离得最远,并且能跳到最后一个。假设i位置是离最后一个位置最远,并且能跳到最后一个位置。下一步再看谁能离i位置最远,并且还能跳到i位置的,最后只需要记录跳跃的次数即可。
class Solution {
public:
    int jump(vector<int>& nums) {
        int sum = 0, flag = 0;
        int i = nums.size() - 2;//i是当前元素
        int j = nums.size() - 1;//j是要跳跃到的位置
        while(j > 0) {//当j==0时,说明已经从最后一个位置回溯到第一个位置了
            for(i = j - 1; i >= 0; i--) {
                if(nums[i] >= (j - i)){
                    flag = i;
                }
            }
            j = flag;
            sum++;//记录跳跃的次数
        }
        return sum;
    }
};
  • 方法二:正向跳跃。核心其实就一句话:每次在上次能跳到的范围内选择一个能跳的最远的位置,将该位置作为下一次的起跳点。
       //法二:正向贪心找最小跳跃数,每次在上次能跳到的范围(end)内选择一个能跳到的最远位置(max_far)
        //作为新的范围(end)

        int max_far = 0;
        int step = 0;
        int end = 0;
        for(int i = 0; i < nums.size() - 1; i++) {
            max_far = max(i + nums[i], max_far);
            if(i == end) {
                end = max_far;
                step++;
            }
        }
        return step;

相关推荐

  1. 45.跳跃游戏

    2024-06-07 03:26:03       44 阅读
  2. 跳跃游戏 + 45. 跳跃游戏 II

    2024-06-07 03:26:03       72 阅读
  3. 45. 跳跃游戏 II

    2024-06-07 03:26:03       53 阅读
  4. 55.跳跃游戏

    2024-06-07 03:26:03       52 阅读
  5. 55. 跳跃游戏

    2024-06-07 03:26:03       56 阅读
  6. 45. 跳跃游戏 II

    2024-06-07 03:26:03       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 03:26:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 03:26:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 03:26:03       87 阅读
  4. Python语言-面向对象

    2024-06-07 03:26:03       96 阅读

热门阅读

  1. 力扣2781.最长合法子字符串的长度

    2024-06-07 03:26:03       28 阅读
  2. Spring MVC中,一个HTTP请求可能会被多个Handler处理

    2024-06-07 03:26:03       32 阅读
  3. 软件测试 - 第四章课后作业

    2024-06-07 03:26:03       34 阅读
  4. SOA的相关概念

    2024-06-07 03:26:03       28 阅读
  5. Meta Llama 3 里面装饰器

    2024-06-07 03:26:03       26 阅读
  6. Okhttp通用工具类

    2024-06-07 03:26:03       29 阅读
  7. 【.Net】Linq的使用

    2024-06-07 03:26:03       33 阅读
  8. spark MLlib 中的分类模型

    2024-06-07 03:26:03       33 阅读
  9. Jetty 和 Tomcat的相同和不同之处【自用】

    2024-06-07 03:26:03       34 阅读