【LeetCode】45.跳跃游戏II

题目链接:

45.跳跃游戏

题目描述:

思路一(广度优先搜索算法BFS)

通过广度优先搜索算法寻找最短距离

代码实现:

cpp 复制代码
class Solution {
public:
    int jump(vector<int>& nums) {
        int n = nums.size();
        if(n<=1) return 0;

        vector<int> visited(n,0);
        queue<pair<int, int>> qu;
        qu.push({0,0});
        visited[0] = 1;
        int ans = 0;

        while(!qu.empty()){
            pair<int, int> cur = qu.front();
            qu.pop();
            int index = cur.first;
            int step = cur.second;

            for(int k = nums[index]; k>0; k--){
                // 跳跃k步
                if((k+index) >= n-1){
                    ans = step+1;
                    break;
                }else{
                    if(visited[k+index] != 1){
                        qu.push({k+index, step+1});
                        visited[k+index] = 1;
                    }
                }
            }
            if(ans!=0){
                break;
            }
        }

        return ans;
    }
};

思路二(贪心算法)

例如,对于数组 [ 2 , 3 , 1 , 2 , 4 , 2 , 3 ] [2,3,1,2,4,2,3] [2,3,1,2,4,2,3], 初始位置是下标 0,从下标 0 出发,最远可到达下标 2。下标 0 可到达的位置中,下标 1 的值是 3,从下标 1 出发可以达到更远的位置,因此第一步到达下标 1。从下标 1 出发,最远可到达下标 4。下标 1 可到达的位置中,下标 4 的值是 4 ,从下标 4 出发可以达到更远的位置,因此第二步到达下标 4。

代码实现:

cpp 复制代码
class Solution {
public:
    int jump(vector<int>& nums) {
        int maxPos = 0;
        int n = nums.size();
        int end = 0;
        int step = 0;

        for(int i=0; i<n-1; i++){
            if (maxPos >= i){
                maxPos = max(maxPos, i+nums[i]);

                if(i==end){
                    end = maxPos;
                    step++;
                }
            }
        }
        return step;
    }
};
相关推荐
yaoh.wang8 小时前
力扣(LeetCode) 13: 罗马数字转整数 - 解法思路
python·程序人生·算法·leetcode·面试·职场和发展·跳槽
T1ssy8 小时前
布隆过滤器:用概率换空间的奇妙数据结构
算法·哈希算法
hetao17338379 小时前
2025-12-12~14 hetao1733837的刷题笔记
数据结构·c++·笔记·算法
椰子今天很可爱9 小时前
五种I/O模型与多路转接
linux·c语言·c++
程序员zgh9 小时前
C++ 互斥锁、读写锁、原子操作、条件变量
c语言·开发语言·jvm·c++
鲨莎分不晴9 小时前
强化学习第五课 —— A2C & A3C:并行化是如何杀死经验回放
网络·算法·机器学习
搞科研的小刘选手10 小时前
【ISSN/ISBN双刊号】第三届电力电子与人工智能国际学术会议(PEAI 2026)
图像处理·人工智能·算法·电力电子·学术会议
拉姆哥的小屋10 小时前
从混沌到秩序:条件扩散模型在图像转换中的哲学与技术革命
人工智能·算法·机器学习
Sammyyyyy10 小时前
DeepSeek v3.2 正式发布,对标 GPT-5
开发语言·人工智能·gpt·算法·servbay
sin_hielo11 小时前
leetcode 2110
数据结构·算法·leetcode