获得最大值似乎并不难:
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;
}
}
关于c++ - 如何在 C++ 中递归查找最大元素的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52563234/