Czy ktoś może wyjaśnić, jak zmienna i zwraca indeks tablicy, jeśli moja tablica ma 9 8 10 8 i chcę wyszukać 10 i w rekurencji i powróci 1, a następnie będzie reklama z ANS + 1 i zwróci 2.

enter code here

Int fightindex (intr wejście [], int rozmiar, int x) {

if(size==0)

{

Powrót -1;

}

if(input[0]==x)

{powrót 0;

}

int ans=firstIndex( input+1,  size-1,  x);

if(ans!=-1)

{
    return ans+1;
    
}

else

{
    return ans;
}

}

0
Rakesh kumar 1 sierpień 2020, 07:15

1 odpowiedź

Najlepsza odpowiedź

OK, więc funkcja, gdy otrzyma pierwsze połączenie, wektor wygląda tak: [9 8 10 8]. Następnie porównuje 9 z 10 (elementem w wyszukiwaniu). Ponieważ nie są one równe, funkcja dokonuje rekurencyjnego połączenia, ale z nowym wektorem, [8 10 8]. W tym momencie mamy w naszym stosie pierwsze połączenie. Nazwijmy to C1.

Następnie porównuje 8 z 10 (element w wyszukiwaniu). Ponieważ nie są one równe, funkcja dokonuje rekurencyjnego połączenia, ale z nowym wektorem, [10 8]. W tym momencie mamy w naszym stosie drugiego i pierwszego połączenia. Nazwijmy to C2 C1.

Następnie porównuje 10 z 10 (elementem w wyszukiwaniu). Ponieważ są one równe, funkcja sprawia, że zwroty 0. W naszym stosie funkcja C2 otrzymuje 0 w rezultacie. Ponieważ jest inny niż -1, wraca 1 do połączenia C1. Ponieważ 1 nie jest równa -1, zwraca 2, pozostawiając prawidłowy wynik.

0
Fabio Zapata 1 sierpień 2020, 04:33