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

做贸易的都有什么网站semen

做贸易的都有什么网站,semen,黄浦网站制作,精品网站建设费用 v磐石网络滑动窗口的最大值 题目描述 给定一个数组和滑动窗口的大小,请找出所有滑动窗口里的最大值。 例如,如果输入数组 [2,3,4,2,6,2,5,1] 及滑动窗口的大小 3 ,那么一共存在 6 个滑动窗口,它们的最大值分别为 [4,4,6,6,6,5] 注意&am…

滑动窗口的最大值

题目描述

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

例如,如果输入数组 [2,3,4,2,6,2,5,1]
及滑动窗口的大小 3
,那么一共存在 6
个滑动窗口,它们的最大值分别为 [4,4,6,6,6,5]

注意:
数据保证 k大于 0,且 k小于等于数组长度。
数据范围
数组长度 [1,1000]

样例
输入:[2, 3, 4, 2, 6, 2, 5, 1] , k=3
输出: [4, 4, 6, 6, 6, 5]

思路

模拟窗口的滑动
当窗口里有k个元素的时候, 向后滑动

  • 检查窗口内元素是否合法
  • 窗口的一端纳入一个元素
  • 窗口的另一端移除一个元素

由于符合先进先出的原则,所以可以用队列来模拟窗口
然后进一步挖掘性质:

假设公司里有一群员工, 现在来了一个新员工A, 如果员工A的能力出众, 并且年纪小, 那么

  1. A可以替换掉所有员工中能力小于等于A的员工
  2. A可以替换掉所有员工中年龄小于等于A的员工

能力->本题的数值
年龄->本题的索引

那么:

  1. 为什么上面的性质合理呢?
    因为滑动窗口需要的是最大值,所以,只要当前元素大于队列中元素,那么队列中元素就不需要了
  2. 为什么可以取等?
    因为两个数值一样的元素并列, 例如int a[3] = {1, 1, 1};, a数组里三个元素均相等,那么当需要最大值的时候
    取a[2]一定没错, 因为如果返回a[0], 那么窗口移动以后,a[0]会被移除,a[1]同理

也就是说,a[2]活到了最后

所以:
最终队列会形成一个递减序列, 因此, 队头元素就是最大值
每次从队头里获取最大值,放入到结果数组中

代码

class Solution {
public:vector<int> maxInWindows(vector<int>& nums, int k) {vector<int> res;deque<int> q;for (int i = 0; i < nums.size(); i ++ ){if (q.size() && i - q.front() >= k) q.pop_front();while (q.size() && nums[q.back()] <= nums[i]) q.pop_back();q.push_back(i);if (i >= k - 1) res.push_back(nums[q.front()]);}return res;}
};
http://www.khdw.cn/news/4571.html

相关文章:

  • wordpress主题授权方式求好用的seo软件
  • 上海网站建设科技公司营销渠道的三个类型
  • 网页网站制作维护百度seo推广计划类型包含
  • 义乌疫情最新情况独立站seo是什么
  • 几何图形生成网站国家职业技能培训学校
  • 丽水网站建设seo百度竞价搜索
  • 仿牌做独立网站可靠吗谷歌广告投放步骤
  • 广州市医院网站建设百度风云榜热搜
  • 嘉兴网站定制网店怎么推广和宣传
  • 一个做品牌零食特卖的网站网络推广的几种方式
  • 成都平台网站建设公司seo是什么专业
  • 浙江省建设厅网站张清云永久观看不收费的直播
  • 做公司网站怎么做立即优化在哪里
  • 企业网站推广的收获与启示河南专业网站建设
  • 文字设计图片在线生成seo软件优化
  • https网站制作重庆seo是什么
  • 不符合网站外链建设原则的是郑州网站运营
  • 唐山网站建设哪家专业百度贴吧网页版入口
  • 喀什网站制作百度相册登录入口
  • 中国西陆最新军事新闻廊坊seo培训
  • 网站建设问卷调查河南网站公司
  • 做网站开票是多少个点的票seo指的是搜索引擎营销
  • 多用户+wordpress最新seo自动优化软件
  • 淘宝客如何建立自己的网站网络运营需要学什么
  • 网站开发怎么入账北京seo推广外包
  • 江苏建设局网站百度搜索关键词查询
  • 可以做网站AB测的软件长沙百度关键词推广
  • 北京网站制作培训学校seo专业优化方法
  • 手机在线建站优化网站seo方案
  • 广州金融网站设计谷歌搜索引擎营销