Blage's Coding Blage's Coding
Home
算法
  • 手写Spring
  • SSM
  • SpringBoot
  • JavaWeb
  • JAVA基础
  • 容器
  • Netty

    • IO模型
    • Netty初级
    • Netty原理
  • JVM
  • JUC
  • Redis基础
  • 源码分析
  • 实战应用
  • 单机缓存
  • MySQL

    • 基础部分
    • 实战与处理方案
    • 面试
  • ORM框架

    • Mybatis
    • Mybatis_Plus
  • SpringCloudAlibaba
  • MQ消息队列
  • Nginx
  • Elasticsearch
  • Gateway
  • Xxl-job
  • Feign
  • Eureka
  • 面试
  • 工具
  • 项目
  • 关于
🌏本站
🧸GitHub (opens new window)
Home
算法
  • 手写Spring
  • SSM
  • SpringBoot
  • JavaWeb
  • JAVA基础
  • 容器
  • Netty

    • IO模型
    • Netty初级
    • Netty原理
  • JVM
  • JUC
  • Redis基础
  • 源码分析
  • 实战应用
  • 单机缓存
  • MySQL

    • 基础部分
    • 实战与处理方案
    • 面试
  • ORM框架

    • Mybatis
    • Mybatis_Plus
  • SpringCloudAlibaba
  • MQ消息队列
  • Nginx
  • Elasticsearch
  • Gateway
  • Xxl-job
  • Feign
  • Eureka
  • 面试
  • 工具
  • 项目
  • 关于
🌏本站
🧸GitHub (opens new window)
  • 数组

  • 链表

  • 字符串

  • 二叉树

  • 动态规划

  • 深搜回溯

  • 数学贪心

    • LCP 33. 蓄水
    • 6455. 使所有字符相等的最小成本
    • 55. 跳跃游戏
      • 1.DFS
      • 2.贪心——保存最大可达位置
    • 2517. 礼盒的最大甜蜜度
    • 2611. 老鼠和奶酪
    • 6449. 收集巧克力
    • 1401. 圆和矩形是否有重叠
    • 2178. 拆分成最多数目的正偶数之和
    • 376. 摆动序列
    • 649. Dota2 参议院
    • 630. 课程表 III
    • 2136. 全部开花的最早一天
    • 2731. 移动机器人
  • 堆栈队列

  • 前缀和

  • 算法设计

  • 位运算

  • WA

  • 算法
  • 数学贪心
phan
2023-05-29
目录

55. 跳跃游戏

# 55. 跳跃游戏 (opens new window)

# 1.DFS

解题思路:用visited数组保存使用位,如果当前位置已经跳过,那么从其它起跳点也能到达该位置的搜索分支,则不需要继续进行搜索(已经搜索过)。

class Solution {
    boolean res=false;
    public boolean canJump(int[] nums) {
        int[] visited=new int[nums.length];
        dfs(nums,visited,0);
        return res;
    }
    public void dfs(int[] nums,int[] visited,int index){
        if(visited[index]==1) return;
        visited[index]=1;
        if(index==nums.length-1||index+nums[index]>=nums.length-1){
            res=true;
            return;
        }
        if(nums[index]==0) return;
        for(int i=index+1;i<=index+nums[index];i++){
            dfs(nums,visited,i);
        }

    } 
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 2.贪心——保存最大可达位置

每次跳跃时,保存当前能够到达的最远的位置k,如果当前遍历索引指针i比k大,说明i这个位置永远到不了,返回false。

class Solution {
	public boolean canJump(int[] nums) {
        int k = 0;
        for (int i = 0; i < nums.size(); i++) {
            if (i > k) return false;
            k = Math.max(k, i + nums[i]);
        }
        return true;
    }
}
1
2
3
4
5
6
7
8
9
10
编辑 (opens new window)
#Leetcode
上次更新: 2023/12/15, 15:49:57
6455. 使所有字符相等的最小成本
2517. 礼盒的最大甜蜜度

← 6455. 使所有字符相等的最小成本 2517. 礼盒的最大甜蜜度→

Theme by Vdoing | Copyright © 2023-2024 blageCoder
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式