题解 | #牛群跃迁#

牛群跃迁

https://www.nowcoder.com/practice/565683772800460496f2d10f2388698e

知识点

模拟

思路

设nums.size()=n;

首先用一个长度为n的bool数组a维护每个障碍的可达状态,true表示可达,false表示不可达。初始化只有a[0]为true,其他全为false

开始遍历Nums[]数组:

对于a[i]==true的位置,a[i~i+nums[i]]都是可达的,都可以赋值为true。 对于a[i]==false的位置,不可达,无意义。

最后判断a[n-1]是否为true即可,这就是最后一个障碍的可达状态。

代码c++

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @return bool布尔型
     */
    bool can_jump(vector<int>& nums) {
        // write code here
        bool a[10000];
       
        int n=nums.size();
        for(int i=0;i<n;i++)
        {
            a[i]=false;
        }
        a[0]=true;
        for(int i=0;i<n;i++)
        {
         if(!a[i])continue;
         for(int j=1;j<=nums[i];j++)
         {
            a[i+j]=true;
         }
        }

       return a[n-1];
        



    }
};
全部评论

相关推荐

ohs的小木屋:比不少实习待遇高了
点赞 评论 收藏
分享
06-26 17:24
已编辑
宁波大学 Java
迷失西雅图:别给,纯kpi,别问我为什么知道
点赞 评论 收藏
分享
每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务