题解 | #滑动窗口的最大值#
滑动窗口的最大值
https://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788
/** * * @param num int整型一维数组 * @param numLen int num数组长度 * @param size int整型 * @return int整型一维数组 * @return int* returnSize 返回数组行数 */ //其实不难,找最大然后窗口右移就行 int max(int* num,int numlen) { int a=num[0]; for(int i=1;i<numlen;i++) { if(a<num[i]) { a=num[i]; } } return a; } int* maxInWindows(int* num, int numLen, int size, int* returnSize ) { // write code here if(size==0) return NULL; *returnSize=0; int* res=(int*)malloc(sizeof(int)*(numLen-size+1)); int head=0,rear=0; for(int i=0;i<=numLen;i++) { if(rear-head==size) { res[(*returnSize)++]=max(&num[head],size); head++; } if(rear-head<size){ rear++; } } return res; }