当前位置: 首页 > 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/news/315011.html

相关文章:

  • 神经网络构建原理(以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
  • springbootKPL比赛网上售票系统
  • Maven 项目无法下载某个依赖
  • 论 JAVA 集合框架中 接口与类的关系
  • 注册信息安全专业人员(CISP)和网络安全的联系与区别
  • FLStudio21Mac版flstudio v21.2.1.3430简体中文版下载(含Win/Mac)
  • windows cuda12.1 pytorch gpu环境配置
  • js之遍历方法
  • windows@文件系统链接@快捷方式@快捷键方式和符号链接及其对比
  • 本地提权【笔记总结】
  • 《AI:开启未来的无限可能》