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

滑动窗口的最大值

http://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788

用数组实现栈功能 alt

//比较大小所用的函数
int max(int* numList,int numSize){
    int temp=numList[0];
    for(int i=1;i<numSize;i++){
        if(temp<numList[i]){
            temp=numList[i];
        }
    }
    return temp;
}
//主函数
int* maxInWindows(int* num, int numLen, int size, int* returnSize ) {
    //初始化结果数组
    *returnSize=0;
    int* res=(int*)malloc(sizeof(int)*(numLen-size+1));
    //初始化一个队,用来不断存入数据
    int* queue;
    queue=(int*)malloc(sizeof(int)*numLen);
    int head=0,tail=0;
    //循环入队
    for(int i=0;i<=numLen;i++){
        //如果队头和队尾之间的数据个数达到要求
        if(tail-head==size){
            //找到此部分数据中最大的存入结果数组
            res[(*returnSize)++]=max(&num[head],size);
            //队头向后移一位
            head++;
        }
        //如果队头队尾之间数据不够
        if(tail-head<size){
        	//继续入队数据
            queue[tail++]=num[i];
        }
    }
    return res;
}
全部评论
少了一个判断:当size等于0的时候
点赞 回复 分享
发布于 2022-12-12 15:22 山东
queue没用,tail++就行
点赞 回复 分享
发布于 09-05 01:27 广东

相关推荐

11-28 17:58
门头沟学院 Java
美团 JAVA开发 n×15.5
牛客786276759号:百度现在晋升很难的 而且云这块的业务没美团好 你看百度股价都跌成啥样了
点赞 评论 收藏
分享
赏个offer求你了:友塔HR还专门加我告诉我初筛不通过😂
点赞 评论 收藏
分享
10-16 22:56
门头沟学院 C++
1234567800:歌尔今年给211开14-15k吗,我本地人连面试都不给😂
点赞 评论 收藏
分享
评论
4
收藏
分享
牛客网
牛客企业服务