博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
45. Jump Game II
阅读量:6758 次
发布时间:2019-06-26

本文共 1940 字,大约阅读时间需要 6 分钟。

45. Jump Game II

题目

Given an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximum jump length at that position.Your goal is to reach the last index in the minimum number of jumps.For example:Given array A = [2,3,1,1,4]The minimum number of jumps to reach the last index is 2. (Jump 1 step from index 0 to 1, then 3 steps to the last index.)Note:You can assume that you can always reach the last index.

解析

  • 运用bfs的思想,更新每一层的start,end,判断是否到达数组结尾,返回bfs的层数
  • 也是一种贪心的思想,
// 45. Jump Game IIclass Solution_45 {public:    int jump(vector
& nums) { int n = nums.size(), step = 0; int start = 0, end = 0; //bfs每一层的开始结束位置 //每层结束更新 while (end
n) { return step; } maxend = max(i+nums[i],maxend); //取当前这步范围内,下一步最远的位置;这里可以记录最远的那一步位置,直接start跳到那里去; } start = end + 1; end = maxend; } return step; } int jump(int A[], int n) { vector
vec(A,A+n); return jump(vec); }};
public class Solution {    public int jump(int[] nums) {        /**         * 本题用贪心法求解,         * 贪心策略是在每一步可走步长内,走最大前进的步数         */        if(nums.length <= 1){            return 0;        }        int index,max = 0;        int step = 0,i= 0;        while(i < nums.length){            //如果能直接一步走到最后,直接步数+1结束            if(i + nums[i] >= nums.length - 1){                step++;                break;            }            max = 0;//每次都要初始化            index = i+1;//记录索引,最少前进1步            for(int j = i+1; j-i <= nums[i];j++){//搜索最大步长内行走最远的那步                if(max < nums[j] + j-i){                    max = nums[j] + j-i;//记录最大值                    index = j;//记录最大值索引                }            }            i = index;//直接走到能走最远的那步            step++;//步长+1        }        return step;    }}

题目来源

转载地址:http://ccweo.baihongyu.com/

你可能感兴趣的文章
域账号锁定和管理工具
查看>>
linux文件系统
查看>>
HTTP协议头字段
查看>>
Linux文件系统之挂载/卸载
查看>>
textField限制输入整数0-100
查看>>
MySQL调优
查看>>
tableview 没有数据显示的时候,插入无数据的view
查看>>
数据结构与算法学习(一)
查看>>
ns3内核解析记录
查看>>
基于lnmp的Discuz论坛
查看>>
Xcode中的 编译过程以及编译器
查看>>
OSV配合windows 2008 r2 NPS 搭建802.1X认证环境
查看>>
01-Swift基础语法
查看>>
【MySQL】无法进入mysql connections问题
查看>>
再说TCP神奇的40ms
查看>>
eclipse hibernate配置文件(*.hbm.xml)加上自动提示功能
查看>>
extjs 枚举类型
查看>>
五、Hotspot中高效的垃圾回收算法实现
查看>>
发送邮件常见的错误和解决方法
查看>>
机器学习服务器 PredictionIO 脱颖而出
查看>>