Как рекурсивно найти индекс элемента max в C ++? - PullRequest
0 голосов
/ 29 сентября 2018

Не кажется слишком сложным получить максимальное значение:

int getMax(int arr[], int size) {
    if(size == 1) {
        return arr[0]
    }
    return max(arr[size - 1], getMaxIndex(arr, size - 1));
}

Но как мне найти индекс того, где оно было?Если я создам переменную count, она будет просто уничтожена, как только я вызову рекурсивно.Я не могу найти нигде в Интернете, где кто-то делает это рекурсивно только с массивом и параметром размера.Спасибо за любую помощь.

1 Ответ

0 голосов
/ 29 сентября 2018

Вы можете сделать это так:

int getMaxIndex(int arr[], int size) {
    if (size == 1) {
        return 0;
    }
    const auto recMaxIndex = getMaxIndex(arr, size - 1);
    if (arr[recMaxIndex] < arr[size - 1]) {
        return size - 1;
    } else {
        return recMaxIndex;
    }
}
...