Recherche de plages contiguës dans des tableaux

Vous êtes donné un tableau d'entiers. Vous avez à la sortie de la gamme la plus large de sorte que tous les numéros de la plage sont présents dans le tableau. Les chiffres sont susceptibles d'être présents dans n'importe quel ordre. Par exemple, supposons que le tableau est

{2, 10, 3, 12, 5, 4, 11, 8, 7, 6, 15}

Ici, nous trouvons deux (non trivial) les plages de tous les entiers de ces gammes sont présentées dans le tableau, à savoir [2,8] et [10,12]. En dehors de ces [2,8] est le plus long. Nous avons donc besoin de la puissance.

Quand on m'a donné à cette question, j'ai été invité à le faire dans le temps linéaire et sans aucun tri. J'ai pensé qu'il pourrait être une base de hachage solution, mais je ne pouvais pas trouver quoi que ce soit.

Voici ma tentative de solution:

void printRange(int arr[])
{
    int n=sizeof(arr)/sizeof(int);
    int size=2;
    int tempans[2]; 

    int answer[2];//the range is stored in another array
    for(int i =0;i<n;i++)
    {
        if(arr[0]<arr[1])
        {
             answer[0]=arr[0];
             answer[1]=arr[1];
        }
        if(arr[1]<arr[0])
        {
            answer[0]=arr[1];
            answer[1]=arr[0];
        }

        if(arr[i] < answer[1])
            size += 1;
        else if(arr[i]>answer[1]) {
            initialize tempans to new range;
             size2=2;
        }
        else { 
            initialize tempans  to new range
        }
}

//I have to check when the count becomes equal to the diff of the range

Je suis bloqué à cette partie... je ne peux pas comprendre comment de nombreux tempanswer[] tableaux doivent être utilisés.

source d'informationauteur garima