题解 | #滑动窗口的最大值#

滑动窗口的最大值

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;
}

全部评论

相关推荐

点赞 评论 收藏
分享
2024-12-13 17:58
门头沟学院 Java
点赞 评论 收藏
分享
2024-11-13 11:12
门头沟学院 Java
咩咩子_:专业技能写上面 项目往下放,如果可以的话改一下学校最好
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务