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

滑动窗口的最大值

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

全部评论

相关推荐

Sigma429:极兔啊,薪资开的巨低,还在上海,索性不做笔试了
点赞 评论 收藏
分享
迷茫的大四🐶:看来已经准备换人了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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