/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* @author Senky
* @date 2023.08.24
* @par url https://www.nowcoder.com/creation/manager/content/584337070?type=column&status=-1
* @brief
* @param num int整型一维数组
* @param numLen int num数组长度
* @param size int整型
* @return int整型一维数组
* @return int* returnSize 返回数组行数
*/
#include <stdlib.h>
#define MAX(a,b) ((a>b)?a:b)
//找到当前窗口最大值
int max(int *num,int size)
{
int max = num[0];
for(int i = 0; i < size; i++)
{
max = MAX(max,num[i]);
}
return max;
}
int* maxInWindows(int* num, int numLen, int size, int* returnSize )
{
// write code here
if(0 == size || numLen < size)
{
//窗口大小为0或大于数组长度 返回空
return NULL;
}
int* result = (int*)malloc(sizeof(int));
*returnSize = 0;
for(int i = 0; i <= numLen - size; i++)
{
result[(*returnSize)++] = max(num++,size);
result = realloc(result, (*returnSize + 1)*sizeof(int));//扩展数组大小
}
return result;
}