找到最大的子阵列

时间:2014-12-12 13:46:02

标签: c++ algorithm

给定一个数组和一个整数k,找到每个大小为k的连续子阵列的最大值。

示例:

Input :
arr[] = {1, 2, 3, 1, 4, 5, 2, 3, 6}
k = 3
Output :
3 3 4 5 5 5 6

我的代码:

void printKMax(int arr[], int n, int k)
{
    int j, max;

    for (int i = 0; i <= n-k; i++)
    {
        max = arr[i];

        for (j = 1; j < k; j++)
        {
            if (arr[i+j] > max)
               max = arr[i+j];
        }
        printf("%d ", max);
    }
}

时间复杂度O(n ^ 2)如果通过使用BIT树或使用任何其他数据结构存在一些线性解决方案,即 O(n)时间复杂度以及如何扩展我的算法以找到否。也增加了序列。

0 个答案:

没有答案