📌  相关文章
📜  最长的仅由偶数或仅由奇数组成的子数组中的最大元素(1)

📅  最后修改于: 2023-12-03 15:40:17.293000             🧑  作者: Mango

最长的仅由偶数或仅由奇数组成的子数组中的最大元素

问题描述:给定一个整数数组,找出其中最长的仅由偶数或仅由奇数组成的子数组,并返回该子数组中的最大元素。

例如,给定数组[2,3,6,7,8,10],最长的仅由偶数或仅由奇数组成的子数组是[2][3,6,7][8,10],这三个子数组中的最大元素分别为2,710,因此返回10

以下是一个Python实现的例子:

def longest_subarray(arr):
    """
    计算数组中最长的仅由偶数或仅由奇数组成的子数组中的最大元素
    """
    n = len(arr)
    res = []
    max_len = 0
    for i in range(n):
        subarray = [arr[i]]
        even = arr[i] % 2 == 0
        for j in range(i+1, n):
            if arr[j] % 2 == 0 and even or arr[j] % 2 != 0 and not even:
                subarray.append(arr[j])
            else:
                break
        if len(subarray) > max_len:
            max_len = len(subarray)
            res = subarray
    return max(res)

# 测试
arr = [2,3,6,7,8,10]
print(longest_subarray(arr)) # 输出10

该算法的时间复杂度为$O(n^2)$,其中$n$为数组长度,因为需要枚举所有可能的子数组。