week_8_ Jump Game
来源:互联网 发布:四旋翼控制算法概述 编辑:程序博客网 时间:2024/05/21 15:49
Description
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.
Determine if you are able to reach the last index.
For example:
A = [2,3,1,1,4], return true. A = [3,2,1,0,4], return false.
Solution
算法思路大致如下:
① 申请一个bool数组mark[],用于标记该下标是否可达。对于可达,其定义是通过若干次跳动可以到达末位下标。
② 末位下标本身必然可达,故初始化mark[size-1]为True。
③ 声明变量index,用于对当前下标最邻近的可达下标进行记录更新,并初始化为index = size - 1。
④ 对数组,由后往前进行遍历,并判断i + nums[i],即当前可以到达的最大下标,与最邻近可达下标的相对关系:若大于或等于,则置mark[i] = true,且更新index = i;若小于,置mark[i] = false。
⑤ 返回mark[0]。
整个算法的实现如下:
class Solution {public:bool canJump(vector<int>& nums) {int size = nums.size();// 初始化mark[size - 1] = true;int index = size - 1;// 由后往前回溯for (int i = size - 2; i >= 0; i--) {if (i + nums[i] >= index) {mark[i] = true;// 更新最近的可达下标index = i;}elsemark[i] = false;}return mark[0];}private:bool mark[50000];};
在LeetCode提交结果如下:
阅读全文
0 0
- week_8_ Jump Game
- Jump Game
- Jump Game
- Jump Game
- Jump Game
- Jump Game
- Jump Game
- Jump Game
- Jump Game
- Jump Game
- Jump Game
- Jump Game
- Jump Game
- Jump Game
- Jump Game
- Jump Game
- Jump Game
- Jump Game
- rxjava学习笔记
- js捆绑时转换对(0=女 1=男) 类型的替换写法
- Oracle新建Schema
- 1363数字游戏
- 【区块链】以太坊 web3j for java 配置和使用 <1>
- week_8_ Jump Game
- 【Java基础总结】-算法题总结
- 17.11.25日报
- 浅谈隐式马尔可夫模型
- 从多个url下载pdf,并且合并成一个
- exists (orcale 返回结果集为真)
- 使用JsonPath解析json数据
- leetcode121- Best Time to Buy and Sell Stock
- Android 开发笔记 3:Android 系统源码下载与编译