首页 > 其他分享 >239. 滑动窗口最大值c

239. 滑动窗口最大值c

时间:2024-03-13 19:44:07浏览次数:22  
标签:numsSize nums int max 最大值 returnSize 239 滑动 array

C语言没有优先队列库,如果自己实现的话在考试是不现实的。优先使用暴力简单的方法加稍微优化尽可能多的过例子。

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int findmax(int* nums,int head,int tail){
    int max=nums[head];
    for(int i=head;i<=tail;i++){
        if(nums[i]>max) max=nums[i];
    }
    return max;
}


int* maxSlidingWindow(int* nums, int numsSize, int k, int* returnSize) {
    *returnSize=0;
    if(k>numsSize) return NULL;
    int* array=(int*)malloc(sizeof(int)*numsSize);
    *returnSize=numsSize-k+1;
    if(k==1){
        for(int i=0;i<numsSize;i++) array[i]=nums[i];
        return array;
    }
    int count=1,max=findmax(nums,0,k-1);
    array[0]=max;
    for(int i=k;i<numsSize;i++){
        if(nums[i]>=max){
            max=nums[i];
            array[count++]=max;
        }else{
            if(nums[i-k]==max){
                max=findmax(nums,i-k+1,i);
                array[count++]=max;
            }else{
                array[count++]=max;
            }
        }
    }
    *returnSize=count;
    return array;
}

标签:numsSize,nums,int,max,最大值,returnSize,239,滑动,array
From: https://www.cnblogs.com/llllmz/p/18071384

相关文章

  • 滑动窗口模板
    适用情景:字符串或数组的子串或子数组模板defslidingWindow(s,t):need={}#存储字符串t中各个字符的需求量window={}#存储滑动窗口中各个字符的出现次数forcint:#遍历字符串tneed.setdefault(c,0)#访问不存在的键时自动创建并......
  • leetcode2397. 被列覆盖的最多行数 回溯法/枝剪
    第一次手搓一个回溯法,超时后采用枝剪勉强通过classSolution{intmax=0;intnumSelect;publicintmaximumRows(int[][]matrix,intnumSelect){Set<String>stateSet=newHashSet<>();dfs(matrix,newboolean[matrix[0].length],0,numSele......
  • vue3 监听鼠标点击拖动事件,移动端滑动事件,页面指针坐标事件
    PointerEventsAPI是Hmtl5的事件规范之一,它主要目的是用来将鼠标(Mouse)、触摸(touch)和触控笔(pen)三种事件整合为统一的API。Pointer指可以在屏幕上反馈一个指定坐标的输入设备。PointerEvent事件和TouchEventAPI对应的触摸事件类似,它继承扩展了TouchEvent,因此拥有TouchEven......
  • 课堂练习 最大值 原题链接+题解
    题目可以去我的洛谷题库看:https://www.luogu.com.cn/problem/U412348(带数据,真难出)题解考虑两种解题方式。由于题目范围较小,可以check+暴力,如果范围大一点,可以check+二分答案。先讲check函数,小学四年级数学书说了,这种问题也被它叫做“铺地砖”问题,计算剪出的正方形数量的方......
  • 第三节:队列相关(滑动窗口最大值、)
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblogs.com/yaopengfei/声     明1:如有错误,欢迎讨论,请勿谩骂^_^。声     明2:原创博客请在转载......
  • 微信小程序-----微信小程序选择本地图片显示并预览(实现左右滑动)
    一、选择图片并显示1、创建页面这里我直接将我的页面信息展示出来给大家看。附上我的代码就是一个简单的页面的代码其中还隐藏了要显示的image,因为没有值,所以还看不到。wxml页面代码<viewclass="display_img"><blockwx:for="{{lista}}"><viewclass="img_size_box"><ima......
  • 第三节:队列相关(滑动窗口最大值、)
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblogs.com/yaopengfei/声     明1:如有错误,欢迎讨论,请勿谩骂^_^。声     明2:原创博客请在转载......
  • 代码随想录算法训练营day13 | leetcode 239. 滑动窗口最大值、347. 前 K 个高频元素
    目录题目链接:239.滑动窗口最大值-困难题目链接:347.前K个高频元素-中等题目链接:239.滑动窗口最大值-困难题目描述:给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。......
  • 洛谷题单指南-搜索-P2392 kkksc03考前临时抱佛脚
    原题链接:https://www.luogu.com.cn/problem/P2392解题思路:参考https://www.cnblogs.com/jcwy/p/18003097前面已经给出了二进制法的代码,这里给出DFS的代码100分代码:#include<bits/stdc++.h>usingnamespacestd;constintN=25;ints1,s2,s3,s4;inta[N],b[N],c[......
  • 代码随想录 第13天 | ● 239. 滑动窗口最大值 ● 347.前 K 个高频元素 ● 总结
    leetcode:239.滑动窗口最大值-力扣(LeetCode)思路:看了挺长时间才反应过来与暴力算法的区别。当遇到比上一个元素大的值时,将上一个元素剔除,小于时加入队列中,每次等于窗口长度时将顶端也就是最大值存起来classSolution{publicint[]maxSlidingWindow(int[]nums,intk)......