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

创业网站模板免费下载辽宁省建设工程信息网官网新网站入口

创业网站模板免费下载,辽宁省建设工程信息网官网新网站入口,项目管理软件有哪些,百度seo排名帝搜软件Problem: 45. 跳跃游戏 II 文章目录 题目思路复杂度Code 题目 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i j] 处: …

Problem: 45. 跳跃游戏 II

文章目录

  • 题目
  • 思路
  • 复杂度
  • Code

题目

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

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

$0 <= j <= nums[i] $
i + j < n i + j < n i+j<n
返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]。

示例 1:

输入: nums = [2,3,1,1,4]

输出: 2

解释: 跳到最后一个位置的最小跳跃数是 2。
从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。

示例 2:

输入: nums = [2,3,0,1,4]

输出: 2

思路

我们思考一种朴素的解法,就是从后往前遍历遍历所有点x,在这层循环中再从左往右遍历所有点,看看哪个点最先能到达x,这个点就是我们的下一个要达到的点,然后我们再从左往右寻找能到达这个点的点就ok

class Solution {public int jump(int[] nums) {int position = nums.length - 1;int steps = 0;while (position > 0) {for (int i = 0; i < position; i++) {if (i + nums[i] >= position) {position = i;steps++;break;}}}return steps;}
}

我们观察下每次跳跃的规律,就拿 [ 2 , 3 , 1 , 2 , 4 , 2 , 3 ] [2,3,1,2,4,2,3] [2,3,1,2,4,2,3] 来说,

  • 对于位置0而言,他可以跳到位置1,2上;
  • 对于位置1而言,他可以跳到2,3,4这些位置上;
  • 对于位置2而言,他可以跳到位置4上;

在这里插入图片描述

此时我们发现一件事,当我们遍历数组到位置2,即 [1] 的时候,此时跳跃者肯定会从 [3,1] 这个子数组中跳跃到更远的地方;我们记录这个更远的地方为end,当我们遍历到end的时候,跳跃者肯定会从 [ 上一次跳跃的位置, e n d ] [上一次跳跃的位置,end] [上一次跳跃的位置,end] 中一个地方往前跳,哪个点跳的远就从哪个点跳

不难发现,我们每次到达end点,其实之前或者此刻都跳了一次,我们记录这次跳跃。

在程序一开始的时候,只遍历的第一个点,所以只能从第一个点开始跳;

当遍历结束的时候,如果我们遍历第n个点,而此刻end又恰好是第n个点,因为end是上一次跳跃更新的,所以上一次跳跃我们就到达了n点,所以我们不遍历n点,以免多计算一次

复杂度

时间复杂度:

O ( n ) O(n) O(n)

空间复杂度:

O ( 1 ) O(1) O(1)

Code

class Solution:def jump(self, nums: List[int]) -> int:right = 0end = 0n = len(nums)cnt = 0for i in range(n-1):if right < i+nums[i]:right = i+nums[i]if end == i:cnt += 1end = rightreturn cnt
http://www.yayakq.cn/news/381482/

相关文章:

  • 公司网站建设选什么服务器岳阳做公司网站
  • 网站费用估算网站首页模块建设
  • 网上最好购物网站wordpress火车头但存图片
  • 怎么自己的电脑做网站服务器杭州企业网站制作公司
  • 微信官方网站是多少钱网站建设风险分析
  • c语言在线编程网站网站建设设计时代创信好
  • 如何做阿里详情页面链接到外部网站网站建设 全包 模板
  • 两栏式设计网站网站建设视频教程最新
  • 在线考试网站模板子网站建设经验汇报
  • 泰州网站制作建设网站电脑基础培训班
  • 阿三做网站iis 网站没有上传权限
  • 建设网站的群wordpress代码格式化
  • 怎么建立挣流量的网站我想自己在网站上发文章 怎样做
  • 网站开发中用什么安全性比性比较高怎么制作网页推广
  • 我是做性视频网站有什么可以做建筑模型的网站
  • 温州网站建设wmwlwordpress建站 app访问
  • 网站出现乱码怎么办wordpress 维护状态
  • 中山手机网站建设报价个人网站可以做社区吗
  • 兰州企业网站建设多少钱百度信息流网站可以做落地页吗
  • 做盗版电影网站淘宝电子网站建设论文
  • 网站制作费用要多少钱唐山网站制作服务公司
  • 行业网站运营方案网站建设中的安全问题
  • 养生网站源码信息网查询
  • aspcms网站地图模板宁波seo整体优化公司
  • 做视频网站可以自学吗wordpress文字中间
  • 给公司建立网站哈尔滨网站开发电话
  • 什么网站可以做试卷电商网站怎么建设
  • 手机网站模板psd哈尔滨网站外包
  • 怎么在wordpress免费注册博客网站互联网行业 英文
  • 做网站要学会什么wordpress模板缩略图代码