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提交结果如下:



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 人一旦破产了该怎么办 商住房40到期后怎么办 大股东质押爆仓怎么办 买的股票跌停了怎么办 刚买了万科天地怎么办 所持股票停牌怎么办 武钢股份退市股票怎么办 买了退市的股票怎么办 国际e庄租期到了怎么办 被汉藏文化骗了怎么办 杏仁吃多了中毒怎么办 出轨怀孕了该怎么办呢 瑞安医保卡丢了怎么办 包裹一直在揽收怎么办 揽收超时的快件怎么办 快递被别人偷了怎么办 行驶证副本丢了怎么办 眼睛进了石灰粉怎么办 高铁网上没票了怎么办 限行尾号是字母怎么办 手指被刺扎肿了怎么办 手上进了小刺怎么办 招投标标书丢了怎么办 冒险岛2装备红了怎么办 宝宝屁股腌红了怎么办 宝宝肛门红痒怎么办啊 宝宝屁屁溃烂了怎么办 脸过敏起红疙瘩怎么办 一岁宝宝屁股红怎么办 屁眼肉凸出来了怎么办 陶笛声音变闷了怎么办 吃三七粉上火了怎么办 红枣核吞下去了怎么办 话梅核吞下去了怎么办 芒果和海鲜吃了怎么办 小孩咳嗽喉咙有痰怎么办 4岁宝宝喉咙有痰怎么办 20天新生儿有痰怎么办 孩子嗓子老是有痰怎么办 买的哈密瓜不甜怎么办 吉他琴颈变形了怎么办