• 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.)

    class Solution {
    public:
        int jump(int A[], int n) 
        {
            if(n==1return 0;
            bool* path=new bool[n];
            for(int i=1;i<n;i++) path[i]=false;
            
            vector<int>* p1=new vector<int>();
            vector<int>* p2=new vector<int>();
            path[0]=0;
            p1->push_back(0);
            int step=0;
            
            while(p1->size()>0)
            {
                sort(p1->begin(),p1->end(),greater<int>());
                step++;
                p2->clear();
                for(int i=0;i<p1->size();i++)
                    for(int j=1;j<=A[(*p1)[i]];j++)
                        if(path[(*p1)[i]+j]==false)
                        {
                            int newindex=(*p1)[i]+j;
                            path[newindex]=true;
                            p2->push_back(newindex);
                            if(newindex==n-1return step;
                        }
              vector<int>* tmp;
              tmp=p1;
              p1=p2;
              p2=tmp;
            }
            return false;
        }
    }; 
  • 相关阅读:
    CF 552(div 3) E Two Teams 线段树,模拟链表
    单词接龙
    书的复制 动规,贪心
    C++文本处理&造轮子
    【NOIP2015】【Luogu2661】信息传递(有向图最小环)
    平时上机练习的注意点(NOIP2018)
    【SHOI2009】【BZOJ2028】会场预约(线段树染色)
    【AHOI2009】【BZOJ1798】Seq 维护序列seq(线段树模板,易错提醒)
    2018 “百度之星”程序设计大赛
    2018 “百度之星”程序设计大赛
  • 原文地址:https://www.cnblogs.com/erictanghu/p/3759367.html
Copyright © 2020-2023  润新知