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

算法之 跳跃游戏

文章目录

  • 55.跳跃游戏
    • 思路参考:56.合并区间

55.跳跃游戏

55.跳跃游戏
在这里插入图片描述

灵神思路

思路分析: 两种思路,思路1是我们可以直接维护当前到达i的时候所能到达的最右的边界mr,如果i>mr就说明无法到达i,否则就是可以到达;思路2是可以将每一个nums[i] 转换为 [i,i+nums[i]]的这样的一个区间,这样我们只需通过合并每一个区间,如果合并之后的区间包含完整的区间,那么就说明可以可以到达的

思路1:

class Solution:def canJump(self, nums: List[int]) -> bool:# 维护最右可以到达的位置mr = 0for i,c in enumerate(nums):# 如果当前所需到达的坐标大于先前可以到达的最右边的距离,那么就直接返回falseif i > mr :return Falsemr = max(mr,i+c)return True

思路2:区间合并

思路参考:56.合并区间

56.合并区间
在这里插入图片描述

class Solution:def merge(self, intervals: List[List[int]]) -> List[List[int]]:# 直接合并就好了,start,end 记录当前区间的开始与结尾# 然后遍历后面一个区间,判断 start1是否大于end,如果大于就将当前区间加入,并更新新的start和end# 否则就合并# 先进行排序,先按照开始时间进行升序intervals.sort(key = lambda x :x[0] )n = len(intervals)ans = []start = intervals[0][0]end = intervals[0][1]for i in range(1,n):if intervals[i][0] <= end:# 当后面一个活动的开始时间在前面的一个结束时间之前,合并的时候结束时间取它们的较大值end = max(end,intervals[i][1])else:ans.append([start,end])start,end = intervals[i][0],intervals[i][1]# 最后一个还需要加入ans.append([start,end])return ans

参照这个区间合并的思路,写出对应的题解

class Solution:def canJump(self, nums: List[int]) -> bool:# 使用区间合并的算法进行求解# nums[i] 转换为 [i,i+nums[i]]n = len(nums)start,end = 0,0+nums[0]for i in range(1,n):# 当当前的坐标,也就是区间的开始小于前面的区间的结尾,说明可以合并,然后就更新endif i <= end:end = max(i+nums[i],end)if end>=n-1:return Trueelse:return False
http://www.lryc.cn/news/538903.html

相关文章:

  • C#中的图形渲染模式
  • 二.数据治理流程架构
  • 瑞萨RA-T系列芯片ADCGPT功能模块的配合使用
  • 扩散模型中的马尔可夫链设计演进:从DDPM到Stable Diffusion全解析
  • 通俗诠释 DeepSeek-V3 模型的 “671B” ,“37B”与 “128K”,用生活比喻帮你理解模型的秘密!
  • 大模型常识:什么是大模型/大语言模型/LLM
  • iOS 中使用 FFmpeg 进行音视频处理
  • SAP-ABAP:SAP的Screen Layout Designer屏幕布局设计器详解及示例
  • 一.数据治理理论架构
  • 亲测有效!使用Ollama本地部署DeepSeekR1模型,指定目录安装并实现可视化聊天与接口调用
  • MySQL安装MySQL服务时提示Install-Remove of the Service Denied
  • (Windows | Linux)ssh访问服务器报错:no matching key exchange method found
  • Linux(centos)系统安装部署MySQL8.0数据库(GLIBC版本)
  • 有哪些滤波,原理是什么,分别在什么时候用
  • 深入解析与解决 Oracle 报错:ORA-29275 部分多字节字符20250213
  • iOS 上自定义编译 FFmpeg
  • linux-带宽性能压测-全解iperfwgetspeedtest-cli
  • 【前端学习笔记】Webpack
  • Qt——连接MySQL数据库之编译数据库驱动的方法详细总结(各版本大同小异,看这一篇就够了)
  • 【R语言】方差分析
  • 深度学习机器学习:常用激活函数(activation function)详解
  • TCP协议(Transmission Control Protocol)
  • django上传文件
  • Web 后端 请求与响应
  • 【深度解析】图解Deepseek-V3模型架构-混合专家模型(MoE)
  • 全平台搭载旭日5!科沃斯GOAT智能割草机器人全新系列正式开售
  • ORB-SLAM3的源码学习:TwoViewReconstruction通过两幅图像来实现重建
  • 基于单片机ht7038 demo
  • 【DeepSeek三部曲】DeepSeek-R1论文详细解读
  • 【深度学习】计算机视觉(CV)-目标检测-DETR(DEtection TRansformer)—— 基于 Transformer 的端到端目标检测