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

南昌网站定制郑州做网站那家做的好

南昌网站定制,郑州做网站那家做的好,html网站建设中,平面广告设计要学的软件一. 简介 前面一篇文章使用贪心算法逆向思维解决了力扣网45题:跳跃游戏II,文章如下: 力扣网编程45题:跳跃游戏II之逆向思维(中等)-CSDN博客 因为之前采用逆向推导的方法时间复杂度为O(n*n),是…

一. 简介

前面一篇文章使用贪心算法逆向思维解决了力扣网45题:跳跃游戏II,文章如下:

力扣网编程45题:跳跃游戏II之逆向思维(中等)-CSDN博客

因为之前采用逆向推导的方法时间复杂度为O(n*n),是比较高的,本文采用正面查找方法来解决方法,来降低时间复杂度。

二. 力扣网编程45题:跳跃游戏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]。

示例 1:
输入: nums = [2,3,1,1,4]
输出: 2
解释: 跳到最后一个位置的最小跳跃数是 2。
     从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。

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

解题思路二:(正向查找可到达的最远距离)

这个题的目标是用最少得跳跃次数到达数组的最后一个位置。

这里也是使用贪心算法,正向查找跳跃次数最少的路径。

算法核心思想:

使用贪心算法的思想,通过维护两个变量来追踪跳跃过程中的位置和步数(最少跳跃次数的路径中):

当前跳跃的最远距离(current_end):表示当前跳跃能到达的最远位置;

下一步跳跃的最远位置(farthest):表示在当前跳跃的基础上,下一步能够到达的最远位置;

举例说明:

具体实现思路:

1. 贪心算法:通过每一次选择能跳到的最远位置来最小化跳跃次数;

2. 维护边界:维护当前能跳跃到达的最远位置(current_end)和下一步跳跃能到达的最远位置(farthest);

3.更新边界: 不断更新 farthest为当前当前位置能跳到的最远位置(current_end = farthest),当遍历到 farthest位置时,表示需要进行一次跳跃,跳跃次数自增1;

4.提前终止:如果current_end已经大于等于 numsSize-1这个位置,可以提前退出循环;

C语言实现如下:


//贪心算法
//正向查找最远位置
//维护两个变量:
//current_end:当前位置能跳跃到最远位置
//farthest:在当前位置的基础上,下一步能跳跃到最远位置
int jump(int* nums, int numsSize) {int i;int step  = 0;//当前位置能到达的最远位置int current_end = 0;//下一步跳到的最远位置(当前位置基础上)int farthest = 0;//最后一个元素不包含for(i = 0; i < numsSize-1; i++) {//更新下一步能跳跃的最远位置farthest = (i+nums[i])>farthest? (i+nums[i]):farthest;//到达当前跳跃的边界(当前能跳到的最远位置)//更新当前跳跃能到的最远位置//这时需要一次跳转(跳跃次数自增1)if(i == current_end){current_end = farthest;step++;}//如果下一步跳跃到的位置 >= numsSize-1//则提前退出if(current_end >= numsSize-1) {break;} }return step;
}

可以看出,正向查找方法只遍历了一次数组,算法的时间复杂度为O(n)。


文章转载自:

http://TStEyDHp.zynjt.cn
http://8hOS2J1s.zynjt.cn
http://7QeXuEhI.zynjt.cn
http://X2hLIcUq.zynjt.cn
http://Zea6cU2J.zynjt.cn
http://KinDifxm.zynjt.cn
http://B9W4shrw.zynjt.cn
http://MRXYff9h.zynjt.cn
http://0rA6X2cC.zynjt.cn
http://3GVqbqcU.zynjt.cn
http://UA8oZQpO.zynjt.cn
http://Pfn8cRIC.zynjt.cn
http://mN1HxsR7.zynjt.cn
http://PY8BkT6v.zynjt.cn
http://63cuWjs3.zynjt.cn
http://xBZV2LaI.zynjt.cn
http://ZpbchtyX.zynjt.cn
http://NItekiUh.zynjt.cn
http://ipNnMJou.zynjt.cn
http://QP3FZt2l.zynjt.cn
http://YSJwfWWR.zynjt.cn
http://SO8Njh2S.zynjt.cn
http://wrMYvSB3.zynjt.cn
http://cE1hMe4v.zynjt.cn
http://Sd7SDigt.zynjt.cn
http://NBDeGZsq.zynjt.cn
http://2fZaMT2u.zynjt.cn
http://Nc7JPP0I.zynjt.cn
http://wn5Kq9sW.zynjt.cn
http://FVJ9XS7v.zynjt.cn
http://www.dtcms.com/wzjs/620962.html

相关文章:

  • 网站后台账号密码网站建设经济效益
  • wordpress添加网站地图免费空白简历模板word
  • 黄岛网站建设多少钱如何做阿里巴巴企业网站
  • 单位网站 单位网页 区别吗怎么建立一个平台
  • 百度小程序如何做网站wordpress广告布局
  • 外贸网站模板 免费小企业网站建设的大品牌
  • 网站搭建平台有哪些成都手机网站建设报价
  • 网站错误提示页设计在电脑新建网站站点
  • 网站做优化有用吗做微官网什么网站好
  • hyip系统网站开发企业建设网站的优势
  • 网站图片展示代码网站建设与管理和电子商务哪个好
  • 易读网站建设禁用wordpress插件更新
  • 模版建网站企业管理咨询服务公司
  • 东莞建网站公司排名佛山高端网站
  • 怎么做告白网站保定网站seo费用
  • 网站开发者模式怎么打开河北人工智能建站系统软件
  • 微设计公司网站实验建设网站 南京林业大学
  • 民宿设计网站大全黔东南网页制作
  • 移动电商网站开发需求海南企业年报网上申报入口
  • wap网站建设免费泰兴建设局网站
  • 网站做描本好处怎么用百度云做网站空间
  • 潍坊网站建设教程个人律师网站模板
  • 导航网站没有内页没有了学生没钱怎么开网店
  • python做电子商务网站网站建设 dw
  • 黄石有哪些做视觉网站的公司用户网站模板
  • 做网站每年包多少流量wordpress 不用主题
  • 付公司网站费用怎么做分录wordpress wp play
  • 用jsp做网站主界面建筑工程网课文案
  • 建网站哪便宜12306网站为什么做不好使
  • 产品设计私单网站企业 北京 响应式网站