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

滑动窗口的最大值

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

//比较大小所用的函数
int max(int* numList, int numSize) {
    int max = numList[0];
    for (int i = 1; i < numSize; i++) {
        if (numList[i] > max) {
            max = numList[i];
        }
    }
    return max;
}

//参数四:结果数组的长度
int* maxInWindows(int* num, int numLen, int size, int* returnSize ) {
    if (!size || size > numLen) return NULL;

    *returnSize = 0;
    int* dest = (int*)malloc(sizeof(int) * (numLen - size + 1));
    int head = 0, tail = 0;
    //遍历num
    for (int i = 0; i <= numLen; i++) {
        if (tail - head == size) {
            dest[(*returnSize)++] = max(&num[head], size);
            head++;
        }
        if (tail - head < size) {
            tail++;
        }
    }
    return dest;
}

全部评论

相关推荐

“校招”、“3-5年经验”
xiaolihuamao:逆向工程不是搞外挂的吗,好像现在大学生坐牢最多的就是诈骗罪和非法侵入计算机系统罪,发美金,还居家办公,就是怕被一锅端,
点赞 评论 收藏
分享
每晚夜里独自颤抖:这个在牛客不是老熟人了吗
点赞 评论 收藏
分享
迷茫的大四🐶:自信一点,我认为你可以拿到50k,低于50k完全配不上你的能力,兄弟,不要被他们骗了,你可以的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务