TOP101题解 | BM45#滑动窗口的最大值#
滑动窗口的最大值
https://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * @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; }#TOP101#
TOP101-BM系列 文章被收录于专栏
系列的题解