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

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

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

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

    例如:

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

    输入格式

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

    输出格式

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

    样例输入

    5

    3 1 1 1 1

    样例输出

    2

    //本题属于简单的动态规划问题。
    #include
    using namespace std;
    int function(int a[],int n)
    {
        int i;
        int temp=0;
        for(i=n-2;i>=0;i--)
        {
            if(a[i]+i>=n-1)//找到第一个能够一步到达最后一位素组下标的位置。
                temp=i;//记录该位置的下标
        }
        if(temp>0)
         return 1+function(a,temp+1);//递归以上次递归找到的位置为尾项。
        if(temp==0)
         return 1;
    }

    int main()
    {
        int array[100];
        int n;
        cin>>n;
        for(int i=0;i
        cin>>array[i];
        if(n==1)
        {
            int a=0;
            cout<<a;
            return 0;
        }
        int out=function(array,n);
        cout<<out;
        return 0;
    }

  • 相关阅读:
    【QCon笔记】Native 和 Web 融合
    点透
    测试
    Moom for mac 最棒的窗口管理软件
    Egret白鹭H5小游戏开发入门(三)
    Egret白鹭H5小游戏开发入门(二)
    Egret白鹭H5小游戏开发入门(一)
    关于Canvas模糊的问题
    利用Canvas实现360度浏览
    JS中取整以及随机颜色问题
  • 原文地址:https://www.cnblogs.com/kuroko-ghh/p/9363385.html
Copyright © 2011-2022 走看看