当前位置: 首页 > article >正文

Day 9:1306 跳跃游戏III

1306 跳跃游戏III

  • 1. 题目描述
  • 2. 解题思路
  • 3. 代码实现(DFS)
  • 4. 代码实现(BFS)

1. 题目描述

1306 跳跃游戏III

2. 解题思路

  1. 使用dfsbfs的思想来进行遍历;
  2. 使用used数组来表示当前位置是否被访问过。

3. 代码实现(DFS)

class Solution {
public:
    bool canReach(vector<int>& arr, int start) {
        int n = arr.size();
        vector<bool> used(n, false);
        
        function<bool(int)> dfs = [&](int idx) {
            if (idx < 0 || idx >= n))
                return false;
  			
  			if(used[idx])
  				return false;
                
            if (arr[idx] == 0)
                return true;
  
            used[idx] = true;
            
            return dfs(idx - arr[idx]) || dfs(idx + arr[idx]);
        };
        
        return dfs(start);
    }
};

4. 代码实现(BFS)

class Solution {
public:
    bool canReach(vector<int>& arr, int start) {
        int n = arr.size();
        vector<bool> used(n, false);

        queue<int> que;
        que.push(start);

        while (!que.empty()) {
            auto it = que.front();
            que.pop();

            // 下标超出范围
            if (it < 0 || it >= n)
                continue;
                
            // 当前位置下标已访问过
            if (used[it])
                continue;

            if (arr[it] == 0)
                return true;

            used[it] = true;

            que.push(it + arr[it]);
            que.push(it - arr[it]);
        }
        return false;
    }
};

http://www.kler.cn/a/315011.html

相关文章:

  • ARM架构中断与异常向量表机制解析
  • 国家网络安全法律法规
  • Tomcat 和 Netty 的区别及应用场景分析
  • 封装一个省市区的筛选组件
  • 高效稳定!新加坡服务器托管方案助力企业全球化布局
  • 陪诊问诊APP开发实战:基于互联网医院系统源码的搭建详解
  • 神经网络构建原理(以MINIST为例)
  • Java | Leetcode Java题解之第416题分割等和子集
  • 国内可以使用的ChatGPT服务【9月持续更新】
  • 828华为云征文 | 云服务器Flexus X实例:多智能体对话框架 AutoGen 部署和实例运行
  • 重修设计模式-结构型-门面模式
  • python 实现binomial coefficient二项式系数算法
  • excel 单元格一直显示年月日
  • Contact Form 7最新5.9.8版错误修复方案
  • ClickHouse 与 Quickwit 集成实现高效查询
  • 适用于QF的存档系统
  • react的事件绑定
  • vulnhub(12):bob 1.0.1(gpg文件解密)
  • @PostConstruct
  • <刷题笔记> 力扣236题——二叉树的公共祖先
  • 全面详尽的 PHP 环境搭建教程
  • C++ 元编程
  • 18938 汉诺塔问题
  • 《深度学习》PyTorch 常用损失函数原理、用法解析
  • 【电力系统】基于遗传算法的33节点电力系统无功优化及MATLAB实现
  • LeetCode337. 打家劫舍III