1.6 面试经典150题 - 跳跃游戏



跳跃游戏

给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。

class Solution(object):def canJump(self, nums):""":type nums: List[int]:rtype: bool"""if not nums or len(nums) == 1: return True# 定义左右指针left = 0right = left + 1while right < len(nums):tmp_right = left# 计算本轮最有可以到达的位置for i in range(left, right):pos = i + nums[i]# 可以到达最后一个元素,提前返回if pos >= len(nums) - 1: return Trueif pos > tmp_right: tmp_right = pos# 本轮不能再向右了,返回falseif tmp_right < right: return False# 更新两个指针值left = rightright = tmp_right + 1return True

本题解题思路:

记录两个值:当前位置left,和目前可以到达的最右位置right

每次对区间内的位置进行遍历,找到新的 可以到达的最右位置

如果不能继续向右,则无法到达最后一个节点

如果可以,则更新left 和 right位置,继续遍历

 跳跃游戏II

给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]

每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处:

  • 0 <= j <= nums[i] 
  • i + j < n

返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]

class Solution(object):def jump(self, nums):""":type nums: List[int]:rtype: int"""if not nums or len(nums) == 1: return 0count = 0left = 0right = left + 1while right < len(nums):count += 1tmp_right = leftfor i in range(left, right):pos = i + nums[i]if pos >= len(nums) - 1: return countif pos > tmp_right: tmp_right = posif tmp_right < right: return -1left = rightright = tmp_right + 1return count

本题对上题略加修改,每次遍历都将计数加1,在上一题返回return的位置,变为返回计数即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/632732.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年回炉计划之排序算法(一)

算法是计算机科学和信息技术中的重要领域&#xff0c;涉及到问题求解和数据处理的方法。要学习算法&#xff0c;你可能需要掌握以下一些基本知识&#xff1a; 基本数据结构&#xff1a; 了解和熟练使用各种数据结构&#xff0c;如数组、链表、栈、队列、树和图等。数据结构是算…

vue中data和props的区别

一、两者区别 区别一&#xff1a; data不需要用户&#xff08;开发者&#xff09;传值&#xff0c;自身维护 props需要用户&#xff08;开发者&#xff09;传值 区别二&#xff1a; 1、data上的数据都是可读可写的&#xff0c; 2、props上的数据只可以读的&#xff0c;无…

Qt固件映像 Raspberry Pi 嵌入式C++(Qt)编程

Qt C创建突围游戏应用示例 在我们的游戏中&#xff0c;我们有一个桨、一个球和三十块砖。 计时器用于创建游戏周期。 我们不处理角度&#xff0c;我们只是改变方向&#xff1a;上、下、左、右。 Qt5 库是为创建计算机应用程序而开发的。尽管如此&#xff0c;它也可以用来创建…

Java导出Excel并合并单元格

需求&#xff1a;需要在导出excel时合并指定的单元格 ruoyi excel 项目基于若伊框架二次开发&#xff0c;本着能用现成的就不自己写的原则&#xff0c;先是尝试了Excel注解中needMerge属性 /*** 是否需要纵向合并单元格,应对需求:含有list集合单元格)*/public boolean needMer…

SpringBoot缓存相关注解的使用

CacheConfig&#xff1a;主要用于配置该类中会用到的一些共用的缓存配置 Cacheable&#xff1a;主要方法的返回值将被加入缓存。在查询时&#xff0c;会先从缓存中获取&#xff0c;若不存在才再发起对数据库的访问 CachePut&#xff1a;主要用于数据新增和修改操作 CacheEvi…

4人遇难,北京突发火情 富维烟火识别防止悲剧再次发生

在北京一处居民区&#xff0c;一场突如其来的火灾夺走了四条宝贵的生命。火情迅速蔓延&#xff0c;烟雾弥漫&#xff0c;居民们猝不及防。这一悲剧再次提醒我们&#xff0c;火灾预防和早期识别的重要性不容忽视。 在这样的背景下&#xff0c;北京富维图像公司开发的FIS智能图像…

搭建自己的媒体矩阵-关于三微一端的媒体矩阵最简方案

引言 随着互联网的快速发展&#xff0c;媒体矩阵已成为品牌宣传的重要战略。通过搭建自己的媒体矩阵&#xff0c;企业、品牌和个人能够更有效地触达目标受众&#xff0c;传递信息、建立品牌形象&#xff0c;并与用户进行深度互动。本文将深入探讨如何制定一个有效的三微一端媒…

kafka入门(八):副本

副本 kafka 副本之间是 一主多从的关系。 其中 leader 副本负责处理读写请求&#xff0c;follower 副本只负责与 leader 副本的消息同步。 副本处于不同的 broker中&#xff0c;当 leader 副本出现故障时&#xff0c;从 follower 副本中重新选举新的 leader 副本对外提供服务…

2024 年 Vue.js 会发生什么?

就像前端开发世界的其他部分一样&#xff0c;Vue 世界发展得很快。在这篇文章中&#xff0c;我想了解一下 Vue 的现状&#xff0c;并分享我对 2024 年发展趋势的预测。 Vue 2 生命周期结束 随着 Vue.js 社区的不断发展&#xff0c;2024 年标志着 Vue 2 生命周期的结束&#x…

高光谱分类论文解读分享之Grid Network: 基于各向异性视角下特征提取的高光谱影像分类

IEEE GRSL 2023&#xff1a;Grid Network: 基于各向异性视角下特征提取的高光谱影像分类 题目 Grid Network: Feature Extraction in Anisotropic Perspective for Hyperspectral Image Classification 作者 Zhonghao Chen , Student Member, IEEE, Danfeng Hong , Senior …

【H3C】配置AAA认证和Telnet远程登陆,S5130 Series交换机

AAA配置步骤为&#xff1a; 1.开启telent远程登陆服务 2.创建用户&#xff0c;设置用户名、密码、用户的服务类型 3.配置终端登录的数量 4.配置vlan-if的ip地址&#xff0c;用来远程登陆 5.允许对应的vlan通过 1.开启telent远程登陆服务 sys …

【驱动】I2C驱动分析(四)-关键API解析

简介 在Linux内核源代码中的driver目录下包含一个i2c目录 i2c-core.c这个文件实现了I2C核心的功能以及/proc/bus/i2c*接口。   i2c-dev.c实现了I2C适配器设备文件的功能&#xff0c;每一个I2C适配器都被分配一个设备。通过适配器访设备时的主设备号都为89&#xff0c;次设备号…

PBR材质纹理下载

03:10 按照视频里的顺序 我们从第6个网站开始倒数 点击本行文字或下方链接 进入查看 6大网站地址 网址查看链接&#xff1a; http://www.uzing.net/community_show-1962-48-48-35.html 06 Tectures Wood Fence 001 | 3D TEXTURES 简介&#xff1a;最大的纹理网站之一&#x…

axios的使用以及Vue动画

axios 的使用 Vue.js 2.0 版本推荐使用 axios 来完成 ajax 请求。 Axios 是一个基于 Promise 的 HTTP 库&#xff0c;可以用在浏览器和 node.js 中。 安装方法 使用 npm: npm install axios 引入 import axios from “axios”; <script> import {defineComponent} from…

机器学习:BootStrapping(Python)

import numpy as np import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.decomposition import PCA # 主成分分析 from sklearn.preprocessing import LabelEncoder, StandardScaler # 类别标签编码&#xff0c;标准化处理 import matplo…

推荐算法常见的评估指标

推荐算法评估指标比较复杂&#xff0c;可以分为离线和在线两部分。召回、粗排、精排和重排由于定位区别&#xff0c;其评估指标也会有一定区别&#xff0c;下面详细讲解。 1 召回评价体系 召回结果并不是最终推荐结果&#xff0c;其本质是为后续排序层服务的&#xff0c;故核…

_198打家劫舍

_198打家劫舍 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;_198打家劫舍_198打家劫舍_滚动数组_198打家劫舍_滚动优化 参考代码&#xff1a;错误经验吸取 原题链接&#xff1a; _198打家劫舍 https://leetcode.cn/problems/house-robber/submissions/4964…

中国联通助力吴江元荡生态岸线打造5G+自动驾驶生态长廊

吴江&#xff0c;素有“鱼米之乡”“丝绸之府”的美誉&#xff0c;其地理位置优越&#xff0c;地处太湖之滨。近年来&#xff0c;随着长三角生态绿色一体化发展示范区&#xff08;以下简称“示范区”&#xff09;的建立&#xff0c;元荡更是声名大噪&#xff0c;成为众多游客心…

GNU Radio简介及流程图搭建

文章目录 前言一、GNU Radio 是什么&#xff1f;二、GNU Radio 安装三、搭建第一个流程图1、创建 GRC 文件2、添加块3、运行流程图 前言 欢迎来到无线通信的世界&#xff0c;初步接触 GNU Radio&#xff0c;对其学习进行一个记录。 一、GNU Radio 是什么&#xff1f; GNU Rad…

Git 在 SSH 协议下使用代理

关于 Git 使用 Proxy , 网上很多教程讲的都是 如何设置 Http 下 Git 使用 Proxy , 但是并没有提到 SSH 下如何使用 Proxy . 即便有些文章讲到了, 也有不少是 Windows 平台下的, Linux 平台下的很少提及, 所以这里就记录一下, 如何在 Ubuntu 中, 使用 Git 在 SSH 协议下应用代理…