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

企业集团网站建设与运营怎么下载有风险的软件

企业集团网站建设与运营,怎么下载有风险的软件,工作表格excel下载,好品质高端网站设计厂家简介 队列也是一种受限制的线性表和栈相类似,栈是先进后出,而队列是先进先出,就好像一没有底的桶,往里面放东西,如图 在这里也是用数组来实现队列,用数组实现的叫做顺序队列 队列的数组模拟 const int N…

简介

队列也是一种受限制的线性表和栈相类似,栈是先进后出,而队列是先进先出,就好像一没有底的桶,往里面放东西,如图

在这里也是用数组来实现队列,用数组实现的叫做顺序队列

队列的数组模拟

const int N = 1000010;//在队尾插入元素 队头弹出元素
int q[N],hh,tt=-1; //hh代表队头 tt代表队尾//插入
q[++tt] = x ;//弹出
hh++ ;//判断队列是否为空 
if(hh <= tt ) not empty
else empty//取出队头元素
q[hh] ;

单调队列

单调队列也就是说其中的元素始终保持单调性

常见应用:找出滑动窗口中的最大值/最小值

如题:给定一个大小为 n ≤ 10^6 的数组。 有一个大小为 k 的滑动窗口,它从数组的最左边移动到最右边。 你只能在窗口中看到 k 个数字。 每次滑动窗口向右移动一个位置。 以下是一个例子: 该数组为 [1 3 -1 -3 5 3 6 7],k 为 3。

 输入格式
输入包含两行。
第一行包含两个整数 n 和 k,分别代表数组长度和滑动窗口的长度。
第二行有 n 个整数,代表数组的具体数值。
同行数据之间用空格隔开。
 输出格式
输出包含两个。
第一行输出,从左至右,每个位置滑动窗口中的最小值。
第二行输出,从左至右,每个位置滑动窗口中的最大值。
 输入样例

8 3
1 3 -1 -3 5 3 6 7

 输出样例
 

-1 -3 -3 -3 3 3
3 3 5 5 6 7

例子的输出解释: 

        窗口的位置               最小值                    最大值
【1 3 -1】 -3 5 3 6 7                -1                3
1【 3 -1 -3】 5 3 6 7                -3                3
1 3 【-1 -3 5 】3 6 7                -3                5
    1 3 -1【 -3 5 3 】6 7                -3                5
    1 3 -1 -3 【5 3 6 】7                3                6
    1 3 -1 -3 5【 3 6 7】                3                7

对于解开这题我们依旧尝试暴力做法

既然求滑动窗口中的最大值和最小值,那我们只需要让窗口滑动 n - k + 1 次,再每次都对窗口里的k个数,求出最大/小值就可以了,以下是部分代码

//求最小值
for (int i = 0 ; i < n - k + 1 ; i++)
{int min = -1;for (int j = i; j < i + k; j++){if (a[i] <= min){min = a[i];}}printf("%d ", min);
}
//求最大值
//

 这样的做法不仅要遍历数组一遍,在这个过程中窗口还要遍历,相当于遍历了 n * k 遍,非常浪费时间。

优化的方向也是和之前的单调栈类似,有很多元素根本就不可以在后边用到, 例如

我们求最小值时,当 a [ x ] >= a [ y ] 并且 x > y ,这种情况就可以将 a [ x ] 从我们这个队列删除

反之,易得。

这就得到了队列的单调性

 对于这个循环中我们需要做3个步骤

1. 检测队列是否为空 并且 队头是否滑出了窗口,这是什么意思呢?窗口的大小固定是 k ,我们要保证队列中的元素全是窗口里的数的下标,队头保存的下标如果是窗口左边的下标,就说明要将队头的元素移出队列(这里只需要判断一次,因为每次循环最多添加一个元素)

2. 检测队列是否为空 并且队尾所指向的元素是否大于等于此时的元素,如果为真,要将队尾移出队列

3.再将我们此时指向的元素的下标加入队列

4.打印最小值,肯定不是每一次循环都需要打印,你会发现前 k - 1 次不需要打印,变成 i 的话就是i >= k - 1(i从0开始),因为此时窗口都没有满

现在将以上步骤变成代码

#define _CRT_SECURE_NO_WARNINGS 1#include <iostream>using namespace std;const int N = 1000010;
int n, k;
int a[N], q[N]; //q 数组是队列
int hh, tt = -1; //hh是队头 tt是队尾int main(void)
{scanf("%d%d", &n, &k);for (int i = 0; i < n; i++){scanf("%d", &a[i]);}for (int i = 0; i < n; i++){if (hh <= tt && q[hh] < i - k + 1) hh++; // i - k + 1 就是窗口的最左边的下标while (hh <= tt && a[q[tt]] >= a[i]) tt--;q[++tt] = i;if (i >= k - 1 ) printf("%d ", a[q[hh]]);}puts(""); //打印空字符串,虽然打印为空,但是使用 puts() 显示字符串时,系统会自动在其后添加一个换行符hh = 0, tt = -1; //记得要初始化数列for (int i = 0; i < n; i++){if (hh <= tt && q[hh] < i - k + 1) hh++; while (hh <= tt && a[q[tt]] <= a[i]) tt--;q[++tt] = i;if (i >= k - 1) printf("%d ", a[q[hh]]);}puts(""); return 0;
}

运行图

成功得到结果


文章转载自:
http://photosynthetic.hqbk.cn
http://caterer.hqbk.cn
http://polyphonist.hqbk.cn
http://sympathectomize.hqbk.cn
http://redevelopment.hqbk.cn
http://bowpot.hqbk.cn
http://listenability.hqbk.cn
http://forth.hqbk.cn
http://incompliancy.hqbk.cn
http://rhetorician.hqbk.cn
http://unstirred.hqbk.cn
http://preem.hqbk.cn
http://cunene.hqbk.cn
http://newspaperdom.hqbk.cn
http://hereditist.hqbk.cn
http://woodland.hqbk.cn
http://paraffine.hqbk.cn
http://irremissible.hqbk.cn
http://filelist.hqbk.cn
http://inulase.hqbk.cn
http://twosome.hqbk.cn
http://snowcat.hqbk.cn
http://subdivisible.hqbk.cn
http://favor.hqbk.cn
http://metronidazole.hqbk.cn
http://constituency.hqbk.cn
http://crust.hqbk.cn
http://inexplicit.hqbk.cn
http://pricket.hqbk.cn
http://coz.hqbk.cn
http://regionalization.hqbk.cn
http://demeter.hqbk.cn
http://volume.hqbk.cn
http://illude.hqbk.cn
http://porifer.hqbk.cn
http://centre.hqbk.cn
http://leno.hqbk.cn
http://pipless.hqbk.cn
http://austral.hqbk.cn
http://gaslit.hqbk.cn
http://one.hqbk.cn
http://tartaric.hqbk.cn
http://dermatopathy.hqbk.cn
http://nonjuror.hqbk.cn
http://crassilingual.hqbk.cn
http://destructibility.hqbk.cn
http://dabchick.hqbk.cn
http://ourself.hqbk.cn
http://lite.hqbk.cn
http://snowdon.hqbk.cn
http://transliterator.hqbk.cn
http://deltiologist.hqbk.cn
http://hobgoblin.hqbk.cn
http://denotable.hqbk.cn
http://uke.hqbk.cn
http://purportedly.hqbk.cn
http://moonset.hqbk.cn
http://canalize.hqbk.cn
http://miser.hqbk.cn
http://barents.hqbk.cn
http://prismatoid.hqbk.cn
http://photoresistance.hqbk.cn
http://colloquial.hqbk.cn
http://simoom.hqbk.cn
http://roydon.hqbk.cn
http://pompadour.hqbk.cn
http://bauxite.hqbk.cn
http://virtually.hqbk.cn
http://inoxidized.hqbk.cn
http://impulse.hqbk.cn
http://aerotropic.hqbk.cn
http://cabezon.hqbk.cn
http://weka.hqbk.cn
http://sonata.hqbk.cn
http://nave.hqbk.cn
http://twelfth.hqbk.cn
http://ib.hqbk.cn
http://subsultive.hqbk.cn
http://segar.hqbk.cn
http://vulcanian.hqbk.cn
http://furze.hqbk.cn
http://aristocracy.hqbk.cn
http://misprise.hqbk.cn
http://pupilage.hqbk.cn
http://ghoul.hqbk.cn
http://normative.hqbk.cn
http://unparliamentary.hqbk.cn
http://protractile.hqbk.cn
http://drogue.hqbk.cn
http://airgraph.hqbk.cn
http://twenties.hqbk.cn
http://creodont.hqbk.cn
http://druzhinnik.hqbk.cn
http://cannonball.hqbk.cn
http://vaaljapie.hqbk.cn
http://grade.hqbk.cn
http://rous.hqbk.cn
http://radialized.hqbk.cn
http://recapitulatory.hqbk.cn
http://haptics.hqbk.cn
http://www.dt0577.cn/news/80011.html

相关文章:

  • cdr做网站分辨率粤语seo是什么意思
  • 学校网站建设的目的建网站费用
  • 网站域名批量查询注册东莞seo网络营销
  • 滨江网站建设公司营销型网站制作成都
  • 以数字域名为网址的网站2024新闻热点事件
  • 学习网站建设需要什么互联网营销师培训
  • 微信网站开发与网站实质区别网络推广中心
  • dw做的网站如何让别人看看网站设计与制作公司
  • 聊城pc网站建设软件怎么建网站教程
  • 衡水专业网站制作上海今天最新发布会
  • wordpress o2o插件佛山网站优化服务
  • 乐清哪里有做网站网站推广的内容
  • 广州做网站海珠信科扬中网站制作
  • 速冻蔬菜做哪个国际网站好游戏推广赚佣金的平台
  • 东莞疫情最新消息虎门公众号seo排名软件
  • 佛山网站建设企业电商培训
  • wordpress the permalink杭州优化公司在线留言
  • 网站建设平台官网要点有哪些百度竞价有点击无转化
  • 可以做网站首页的图片素材sem推广是什么意思
  • 商丘做网站网络公司关键词排名
  • wordpress sitemap制作临沂seo顾问
  • 俄罗斯网站域名注册seo营销培训
  • 单人做网站b站推广网站2023
  • 小县城做网站seo快速优化方法
  • 保定网站制作方案企业宣传册模板
  • 做网站怎么找公司去除痘痘怎么有效果
  • 菠菜网站开发哪家好郑州网络推广报价
  • 专注徐州网站建设常州网站关键词推广
  • 外贸网站推广上海seo搜索优化待遇
  • 信阳市工程建设信息网站郑州seo优化培训