您现在的位置是:首页 >技术教程 >【算法设计与分析】第七至十一讲实验网站首页技术教程

【算法设计与分析】第七至十一讲实验

MorleyOlsen 2024-06-17 16:40:15
简介【算法设计与分析】第七至十一讲实验

 7:

1. 实验题目

给定一个非负整数的数组,每个数字表示在当前位置的基础上最多可以走的步数。求能够到达数组最后一个位置所需的最少移动次数。如果不能到达,则输出-1。

例如:

       输入数组 [2,3,1,1,4],输出2——第一步从下标0移动1步到下标1,再移动3步到最后一个位置。

       输入数组 [3,2,1,0,4],不能到达,输出-1——无论怎么移动都只能到下标为3的位置,在此位置最多只能移动0步,故永远无法到达最后位置。

2. 实验目的

    掌握贪心法的设计思想并能熟练运用。

3. 实验要求

    设计贪心算法求解。输出最小移动次数,如果不能到达,则输出-1。

 

#include <iostream>
using namespace std;

int Greedy(int x[], int length);

int main()
{

    int length;
    int x[1000];
    cin >> length;

    for (int i = 0; i < length; i++)
    {
		cin >> x[i];
    }

    cout << Greedy(x, length) << endl;

    return 0;
}

int max(int a, int b) {
    if (a >= b)
        return a;
    return b;
}

int Greedy(int x[], int length) {
int end=length-1,steps=0,k=0,i;
   
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。