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

【剑指offr--C/C++】JZ59 滑动窗口的最大值

一、题目

这里是引用

二、思路及代码
暴力解法是依次往后滑动一位,然后比较窗口内的值。
我这里考虑:窗口每次往后移动一位,那么如果当前窗口的最大值max在窗口内部,那么再滑动到下一个窗口的时候,窗口内只有最新进来的一个元素没有跟max做过比较,只需要让他俩比较一下即可。通过这种方式能比暴力比较节省一点时间。

class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param num int整型vector* @param size int整型* @return int整型vector*/vector<int> maxInWindows(vector<int>& num, int size) {// write code hereint i = 0;int p = -1; //当前窗口中最大值所在的下标int max = -10003;vector<int> ans;if(size==0) return ans;for (i = 0; i < num.size() - size+1; i++) {int n=i+size-1;//如果窗口往后滑动一位,p还在窗口内,那么只需要再跟新进窗口的那个值比较一下就可以了if (p >= i && p < n) {if (max < num[n]) {max = num[n];p = n;}} else {max=num[i];for (int j = i+1; j < i+size; j++) {if (num[j] > max) {max = num[j];p = j;}}}ans.push_back(max);}return ans;}
};
http://www.lryc.cn/news/331857.html

相关文章:

  • RabbitMQ Tutorial
  • 如何对Webpack进行优化
  • nut-ui中的menu 菜单组件的二次封装
  • python笔记(11)序列
  • Rust egui(4) 增加自己的tab页面
  • 小组分享第二部分:Jsoup
  • C#(winform) 调用MATLAB函数
  • Kubernetes探索-Pod面试(补充)
  • 深入了解JUnit 5:新一代Java单元测试框架
  • 2024年清明节安装matlab 2024a
  • 关于PostgreSQL JDBC中的log输出是怎么回事?
  • 【科研笔记】知识星球不可选择内容爬虫
  • [技术闲聊]我对电路设计的理解(二)
  • 【Android、 kotlin】kotlin学习笔记
  • Debian 配置国内软件源
  • 选数(dfs,isprime)
  • RocketMQ(版本4.9.4)+RocketMQ_Dashbord环境搭建(生产者、消费者的前置环境搭建)
  • css隐藏溢出隐藏的滚动条
  • scss常用混入(mixin)、@inclue
  • 补代码随想录算法训练营第44天 | 完全背包、518. 零钱兑换 II 、377. 组合总和 Ⅳ
  • 【Linux】网络基础常识{OSI七层模型/ TCP/IP / 端口号 /各种协议}
  • python--面向对象编程和类的定义,对象的创建
  • nssm 工具把asp.net core mvc变成 windows服务,使用nginx反向代理访问
  • String Encryptor custom Bean not found with name ‘jasyptStringEncryptor‘...
  • FastAPI+React全栈开发14 FastAPI如何开发REST接口
  • 在 DDD 中,如何处理领域对象的持久化?
  • centos 如何安装nvidia-container-runtime
  • 非写代码无以致远
  • 刷题之Leetcode34题(超级详细)
  • 从0到1构建uniapp应用-store状态管理