zoukankan      html  css  js  c++  java
  • 计蒜客 跳跃游戏2

    给定一个非负整数数组,假定你的初始位置为数组第一个下标。


    数组中的每个元素代表你在那个位置能够跳跃的最大长度。


    你的目标是到达最后一个下标,并且使用最少的跳跃次数。


    例如:


    A = [2,3,1,1,4]A=[2,3,1,1,4],到达最后一个下标的最少跳跃次数为 22。(先跳跃 11 步,从下标 00 到 11,然后跳跃 33 步,到达最后一个下标。一共两次)


    输入格式


    第一行输入一个正整数 n(1 le n le 100)n(1≤n≤100) ,接下来的一行,输入 nn 个整数,表示数组 AA。


    输出格式


    最后输出最少的跳跃次数。


    样例输入
    5

    3 1 1 1 1

    样例输出

    2


    #include<iostream>
    #include<algorithm>
    using namespace std;
    int main()
    {
        int n;
        cin>>n;
        int a[n];int dp[n];//dp[i]表示目前考虑的到达i所需最小的跳跃次数
        for(int i=0;i<n;i++)cin>>a[i];
        dp[0]=0;
        for(int i=1;i<n;i++)dp[i]=0xfffffff;
        for(int i=1;i<n;i++)
        {
            for(int j=0;j<i;j++)
            {
                if(j+a[j]>=i)dp[i]=min(dp[i],dp[j]+1);
            }
        }
        cout<<dp[n-1]<<endl;
        return 0;
    }

  • 相关阅读:
    表格维护:弹出
    表格联动
    表单查询
    浅谈分治 —— 洛谷P1228 地毯填补问题 题解
    The Captain 题解
    网课集训记
    2020-1-20寒假集训记
    博客使用声明
    JZOJ P5829 string 线段树
    线段树--CF438D The Child and Sequence
  • 原文地址:https://www.cnblogs.com/linruier/p/9485181.html
Copyright © 2011-2022 走看看