首页 > 试题广场 >

数组中的最大值

[编程题]数组中的最大值
  • 热度指数:2331 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
用递归方法找一个数组中的最大值

输入描述:
第一行输入一个n,代表数组的长度
第二行,输入n个数


输出描述:
输出这个数组中的最大值
示例1

输入

5
1 2 3 4 5

输出

5
#include<cstdio>

int recursiveMax(int *arr, int left, int right) {
    if (left == right) return arr[left];
    int middle = left + ((right - left) >> 1);
    int leftVal = recursiveMax(arr, left, middle);
    int rightVal = recursiveMax(arr, middle + 1, right);
    return leftVal > rightVal ? leftVal : rightVal;
}

int main() {
    int n;
    scanf("%d", &n);
    int arr[n];
    for (int i = 0; i < n; ++i) scanf("%d", &arr[i]);
    printf("%d", recursiveMax(arr, 0, n - 1));
    return 0;
}

编辑于 2021-09-07 23:25:39 回复(0)