首页 > 其他分享 >剑指Offer——59-I.滑动窗口的最大值(c语言)

剑指Offer——59-I.滑动窗口的最大值(c语言)

时间:2023-04-22 14:25:49浏览次数:42  
标签:numsSize 59 nums int 最大值 Offer 滑动 窗口

title: 剑指Offer59-I.滑动窗口的最大值(c语言)

给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。

示例:

输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3
输出: [3,3,5,5,6,7] 
解释: 

  滑动窗口的位置                最大值
---------------               -----
[1  3  -1] -3  5  3  6  7       3
 1 [3  -1  -3] 5  3  6  7       3
 1  3 [-1  -3  5] 3  6  7       5
 1  3  -1 [-3  5  3] 6  7       5
 1  3  -1  -3 [5  3  6] 7       6
 1  3  -1  -3  5 [3  6  7]      7

提示:

你可以假设 k 总是有效的,在输入数组不为空的情况下,1 ≤ k ≤ 输入数组的大小。

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* maxSlidingWindow(int* nums, int numsSize, int k, int* returnSize){
    if(NULL==nums || 0==numsSize){
        *returnSize = 0;
        return NULL;
    }
    *returnSize = numsSize-k+1;

    int *ret = (int*)malloc(sizeof(int)*(numsSize-k+1));
    for(int i=0; i<numsSize-k+1; ++i)
    {
        int max = nums[i];
        for(int j=i; j<i+k; ++j)
        {
            if(nums[j] > max){
                max = nums[j];
            }
        }
        ret[i] = max;
    }
    return ret;
}

标签:numsSize,59,nums,int,最大值,Offer,滑动,窗口
From: https://www.cnblogs.com/blue-Suri/p/17342973.html

相关文章

  • 剑指Offer——10-I.斐波那契数列(c语言)
    title:剑指Offer10-I.斐波那契数列(c语言)写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。斐波那契数列的定义如下:F(0)=0,F(1)=1F(N)=F(N-1)+F(N-2),其中N>1.斐波那契数列由0和1开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取......
  • 剑指Offer——57.和为s的两个数字(c语言)
    title:剑指Offer57.和为s的两个数字(c语言)输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例1:输入:nums=[2,7,11,15],target=9输出:[2,7]或者[7,2]示例2:输入:nums=[10,26,30,31,47,60],......
  • 剑指Offer——03.数组中重复的数字(c语言)
    title:剑指Offer03.数组中重复的数字(c语言)找出数组中重复的数字。在一个长度为n的数组nums里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例1:输入:[2,3,1,0,2,......
  • 剑指Offer——05.替换空格(c语言)
    title:剑指Offer05.替换空格(c语言)请实现一个函数,把字符串s中的每个空格替换成"%20"。示例1:输入:s="Wearehappy."输出:"We%20are%20happy."限制:$$0\leqslants的长度\leqslant10000$$代码如下:char*replaceSpace(char*s){if(NULL==s){return......
  • 剑指Offer——53-II. 0~n-1中缺失的数字(c语言)
    title:剑指Offer53-II.0~n-1中缺失的数字(c语言)一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例1:输入:[0,1,3]输出:2示例2:输入:[0,1,2,3,4,5,6,7,9]输......
  • 剑指Offer——10-II.青蛙跳台阶问题(c语言)
    title:剑指Offer10-II.青蛙跳台阶问题(c语言)一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法。答案需要取模1e9+7(1000000007),如计算初始结果为:1000000008,请返回1。示例1:输入:n=2输出:2示例2:输入:n=7输出:21示例3:输入:n......
  • 剑指Offer——24.反转链表(c语言)
    title:剑指Offer24.反转链表(c语言)定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入:1->2->3->4->5->NULL输出:5->4->3->2->1->NULL限制:$$0\leqslant节点个数\leqslant5000$$代码如下:/***Definitionforsingly-linkedlist.......
  • PCF8591 AD/DA转换基于51
    #include<reg52.h>#include<intrins.h>//内部有_nop_();//IIC模拟时序实现//注意:SCL为高电平时变化SDA数据是起始或者终止信号;所以若不是起始或者终止信号,需要在SCL为低电平时变化SDA数据sbitSDA=P2^0;sbitSCL=P2^1;sbitLED=P2^3;sbitwei=P2^6;sbitdu......
  • 算法学习day01数组part02-209、59、977
    packageLeetCode.arraypart02;/***209.长度最小的子数组*给定一个含有n个正整数的数组和一个正整数target。*找出该数组中满足其和≥target的长度最小的连续子数组[numsl,numsl+1,...,numsr-1,numsr],并返回其长度。如果不存在符合条件的子数组,返回0.*......
  • loj3959. 「联合省选 2023」填数游戏
    有意思的题,做这题的时候也发现了不少有趣的东西虽然不会做。考场上没有看出来建图。事实上本题复杂的性质基本决定它需要一步图论转化,而互不相同也是一个经典限制。可以得到如下建图转化:对于集合\(T_i\)的两个数,在它们之间建立无向边,用定向表示选择,则我们需要给边定向使得每个......