如何在C++中递归地找到max元素的索引?

How to recursively find the index of a max element in C++?

本文关键字:max 元素 索引 C++ 递归      更新时间:2023-10-16

获得最大值似乎并不难:

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

但是我怎样才能找到它所在位置的索引呢?如果我创建一个计数变量,只要我递归调用它就会被擦除。我在网上找不到任何地方有人只用数组和大小参数递归地执行此操作。感谢您的任何帮助。

你可以这样做:

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;
}
}