首页 > 解决方案 > Coursera 分级机上的未知信号 6,在本地系统上工作正常

问题描述

任务是输入一系列数字,代表对应的从 0 开始的索引节点的父节点(如果数字是 -1 则它是树的根)并输出树的高度。写了以下代码

#include <bits/stdc++.h>
using namespace std;


void ranking( int  i, int   a, vector <int>  &parent, vector <int> &rank)
{
    if(rank[i] + 1 > rank[a])
    {
        rank[a] = rank[i] + 1;

        if(parent[a]!= -1)
        {
            ranking(a, parent[a], parent, rank);
        }
        
    }

}

 int  main()
{
     int  n;
    cin >> n;
    int  a;

    vector <int>   parent(n);
    vector <int>   rank(n, 0);

    for ( int  i=0; i<n; i++)
        {
            cin>> parent[i];
            if(parent[i] < 0)
                a=i;
        }

    for ( int  i=0; i<n; i++)
    {
        ranking(i, parent[i], parent, rank);
    }

    cout << rank[a] + 1<< endl;

    

    return 0;
}

代码在我的系统上正常运行,但在 Coursera 分级机上显示未知信号 6。请帮助我理解这里可能出了什么问题,我对程序如何处理内存不太了解

标签: c++data-structures

解决方案


推荐阅读