当前位置: 首页 > news >正文

建网站权威公司广告发布平台

建网站权威公司,广告发布平台,天门市网站建设,类似链家网站建设方案题目 239. 滑动窗口最大值 困难 提示 队列 数组 滑动窗口 单调队列 堆(优先队列) 给你一个整数数组 nums#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的…题目 239. 滑动窗口最大值 困难 提示 队列 数组 滑动窗口 单调队列 堆(优先队列) 给你一个整数数组 nums有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1 输入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 31 [3 -1 -3] 5 3 6 7 31 3 [-1 -3 5] 3 6 7 51 3 -1 [-3 5 3] 6 7 51 3 -1 -3 [5 3 6] 7 61 3 -1 -3 5 [3 6 7] 7示例 2 输入nums [1], k 1 输出[1]提示 1 nums.length 105-104  nums[i] 1041 k nums.length 思路和解题方法 定义了一个名为Solution的类其中包含了一个嵌套类myqueue。myqueue类使用deque来实现一个单调队列具有三个方法pop、push和front。maxSlidingWindow方法接收一个整数数组nums和窗口大小k作为参数用于求解滑动窗口的最大值。在方法中首先创建一个myqueue对象que并将前k个元素依次插入队列中通过调用myqueue类的push方法。然后将队列的首元素即最大值加入到结果向量ans中。接下来从第k个元素开始遍历数组nums每次循环 先将窗口外的元素从队列中移出通过调用myqueue类的pop方法。然后将当前元素插入到队列中通过调用myqueue类的push方法。再将队列的首元素加入到结果向量ans中。最后返回结果向量ans作为最终的结果。 复杂度 时间复杂度: O(n) 时间复杂度为O(n)其中n表示数组nums的大小。因为每个元素最多进出队列一次所以总共有2n次操作因此时间复杂度为O(n)。 空间复杂度 O(k) 空间复杂度是O(k)其中k为窗口大小。因为单调队列中最多存储k个元素所以空间复杂度为O(k)。值得注意的是如果窗口大小为1即每个元素都被作为一个窗口进行处理那么空间复杂度将是O(n)。 c 代码 ​class Solution { public:class myqueue{public:dequeintque; // 使用deque作为存储队列元素的容器void pop(int value) // 弹出value如果当前队列的首元素等于value{if(!que.empty() value que.front()) // 如果队列不为空且队列首元素等于valueque.pop_front(); // 弹出队列首元素}void push(int value) // 将value插入队列中{while(!que.empty() value que.back()) // 如果队列不为空且value大于队列末尾元素que.pop_back(); // 弹出队列末尾元素以保持队列单调递减que.push_back(value); // 插入value到队列末尾}int front(){ // 返回队列的首元素return que.front();}}; public:vectorint maxSlidingWindow(vectorint nums, int k) {myqueue que; // 创建一个myqueue对象vectorint ans; // 存储结果的向量for(int i 0; i k; i) // 初始化窗口的大小将前k个元素插入队列中{que.push(nums[i]);}ans.push_back(que.front()); // 将队列的首元素当前窗口的最大值加入结果向量中for(int i k; i nums.size(); i) // 从第k个元素开始遍历数组{que.pop(nums[i - k]); // 弹出窗口外的元素que.push(nums[i]); // 将当前元素插入队列中ans.push_back(que.front()); // 将队列的首元素加入结果向量中}return ans; // 返回结果向量} };觉得有用的话可以点点赞支持一下。 如果愿意的话关注一下。会对你有更多的帮助。 每天都会不定时更新哦  人  。
http://www.zqtcl.cn/news/725946/

相关文章:

  • 网站备案无前置审批文件南宁市建设厅网站
  • 百度网站体检手机网页小游戏
  • 大型购物网站建设费用广告设计与制作软件有哪些
  • 郑州建设工程交易中心网站汉寿做网站的公司
  • 青岛企业做网站startuply中文版wordpress主题
  • 商标设计网站猪八戒网站建设与设计教程
  • 网站建设积分wordpress添加右侧菜单
  • 网站策划资料方案天津优化公司
  • 做网站推广哪家公司好成都最正规的装修公司
  • 菜鸟建网站如何制作推广网站
  • 无锡企业建站系统广州品牌网站建设
  • 什么网站能免费做公众号封面wordpress主题打不开
  • 扬州外贸网站建设制作广告的软件
  • 一个主机怎么做两个网站百度上的网站怎么做
  • 济南建设工程业绩公示的网站wordpress载入等待
  • seo公司名字太原百度seo排名软件
  • 安徽省城乡建设厅网站拼多多关键词排名在哪里看
  • 素材下载网站开发wordpress微信付款插件
  • 网站有什么用河北廊坊建筑模板厂家
  • 永康住房和城乡建设部网站做网站 万户
  • 可信赖的常州网站建设做直播券的网站有多少
  • 网络营销案例分析pptseo策略是什么意思
  • 论坛网站建设视频青岛网站设计软件
  • 租用网站服务器价格清远医院网站建设方案
  • 房地产网站建设方案书福田所有车型
  • 网站功能描述高清视频网络服务器免费
  • 天台做网站微博推广效果怎么样
  • 苏州专门网站网站站长统计怎么做
  • 社交网站开发注意事项call_user_func_array() wordpress
  • 泉州企业免费建站个人网站设计与开发