栈,优先级队列,map,set

文章目录

    • 题目解析
    • 代码
  • 优先级队列
    • 题解
    • 代码
  • map
    • 题解
    • 代码
  • set
    • 题解
    • 代码

在这里插入图片描述

题目解析

1.先把元素push进栈中,如果栈非空并且栈中的元素按顺序和k相等就出栈,直到栈为空或者k != sk.top()

代码

#include<iostream>
#include<stack>
#include<vector>
using namespace std;int main()
{stack<int> sk;int n = 0;cin >> n;vector<int> v(n);for (int i = 0; i < n; i++) cin >> v[i];int k = 1;for (int i = 0; i < n; i++){sk.push(v[i]);while(!sk.empty()&&k == sk.top()){sk.pop();k++;}}if (sk.empty()){cout << "Yes" << '\n';}else{cout << "No" << '\n';}return 0;
}

优先级队列

在这里插入图片描述

题解

1. 用sum统计篮子的重量
2. 是1就push,增加sum
3. 是2就减少sum,pop,并且要判空,非空才能减,不然优先级对列会报错

代码

#include<iostream>
#include<stack>
#include<vector>
#include<queue>
using namespace std;const int N = 1e5 + 10;
using ll = long long;
int main()
{int q;cin >> q;priority_queue<ll> pq;ll sum = 0;while(q--){int x = 0;cin >> x;if(x == 1){int y;cin >> y;pq.push(y);sum += y;}else if( x == 2){if(!pq.empty()) {sum -= pq.top();pq.pop();}}}cout << sum;return 0;
}

map

在这里插入图片描述

题解

1. map统计字符串出现的次数
2. vector可以把字符串按顺序输出
3. 第一次出现就插入到vector中

代码

#include<iostream>
#include<vector>
#include<map>
#include<string>
using namespace std;const int N = 1e5 + 10;
using ll = long long;void slove()
{int n;cin >> n;map<string,int> p;// map是有序的vector<string> v;// 表示字符串出现的顺序for(int i = 0;i < n;i++){string s; cin >> s;if(p.count(s)) p[s]++;else {v.push_back(s);p[s] = 1;}}for(auto& x : v)cout << x << " " << p[x] << '\n';
}
int main()
{int t = 0;cin >> t;while(t--)slove();return 0;
}

set

在这里插入图片描述

题解

1. 把数插入到set中,set会自动帮我们排好序的,然后输出就行了

代码

#include<iostream>
#include<vector>
#include<set>
#include<algorithm>using namespace std;int main()
{int n;cin >> n;set<int> st;for(int i = 0;i < n;i++){int x;cin >> x;st.insert(x);}for(auto x : st) cout << x << " ";return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/70413.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ Primer 类的静态成员

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…

Java——super

在Java中&#xff0c;super关键字用于引用父类的成员&#xff08;属性、方法或构造器&#xff09;。它在继承关系中非常重要&#xff0c;主要用于以下几种场景&#xff1a; 1. 调用父类的构造器 在子类的构造器中&#xff0c;可以使用super关键字调用父类的构造器。super()必须…

Unity 全局屏幕点击特效

思路&#xff1a; 1、生成一个点击特效实例&#xff0c;每点击屏幕&#xff0c;就调整特效实例的位置并控制特效的显隐状态即可。 2、需要注意要保证在编辑器开发时或手机上运行时都要显示点击效果。 方案一 &#xff08;推荐&#xff09; using UnityEngine; using UnityEn…

什么是业务流程分类框架

业务流程分类框架是一个用于组织和系统化地分类业务流程的结构化方法。它旨在帮助企业理解、管理、分析和改进其运营流程。 可以把它想象成一个图书馆的图书分类系统&#xff0c;帮助快速找到和理解不同类型的书籍。对于业务流程来说&#xff0c;分类框架帮助快速了解不同类型的…

基于springboot校园健康系统的设计与实现(源码+文档)

大家好我是风歌&#xff0c;今天要和大家聊的是一款基于springboot的园健康系统的设计与实现。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 基于springboot校园健康系统的设计与实现的主要使用者管理员具有最高的权限&#xff0c;通…

【Leetcode】平衡二叉树

平衡二叉树 题目 思路与代码实现 常规解法&#xff1a; int max(int a,int b){return a>b?a:b;}int maxDepth(struct TreeNode* root) {if(rootNULL)return 0;return 1max(maxDepth(root->left),maxDepth(root->right)); }bool isBalanced(struct TreeNode* root)…

【AI实践】阿里百炼文本对话Agent安卓版搭建

环境&#xff1a;安卓手机运行环境&#xff1b;WinsurfAI编程工具&#xff1b;阿里百炼提前创建Agent应用&#xff1b; 耗时&#xff1a;2小时&#xff1b; 1&#xff0c;新建安卓项目 完成文本输入&#xff0c;并将输入的文字显示出来。 2&#xff0c;安装SDK 参考文档 安…

一文读懂Docker之Docker Compose

目录 一、Docker Compose简介 二、Docker Compose的安装和基本使用 1、Docker Compose的安装 步骤一、下载docker-compose 步骤二、新增可执行权限 步骤三、查看是否安装成功 2、Docker Compose的基本使用 (1)、docker-compose up (2)、docker-compose ps (3)、docke…

WordPress“更新失败,响应不是有效的JSON响应”问题的修复

在使用WordPress搭建网站时&#xff0c;许多人在编辑或更新文章时&#xff0c;可能会遇到一个提示框&#xff0c;显示“更新失败&#xff0c;响应不是有效的JSON响应”。这个提示信息对于不了解技术细节的用户来说&#xff0c;太难懂。其实&#xff0c;这个问题并不复杂&#x…

信息学奥赛一本通 1973 【16NOIP普及组】买铅笔 | 洛谷 P1909 [NOIP 2016 普及组] 买铅笔

【题目链接】 ybt 1973 【16NOIP普及组】买铅笔 洛谷 P1909 [NOIP 2016 普及组] 买铅笔 【题目考点】 1. 简单数学 2. 数组 3. 向上取整 <cmath>中有函数double ceil(double x)&#xff0c;求x向上取整的值。 如果求正整数 ⌈ a b ⌉ \lceil \frac{a}{b} \rceil ⌈…

C++中的.*运算符

看运算符重载的时候&#xff0c;看到这一句 .* :: sizeof ?: . 注意以上5个运算符不能重载。 :: sizeof ?: . 这四个好理解&#xff0c;毕竟都学过&#xff0c;但.*是什么&#xff1f; 于是自己整理了一下 .* 是一种 C 中的运算符&#xff0c;称为指针到成…

【JavaEE进阶】MyBatis通过注解实现增删改查

目录 &#x1f343;前言 &#x1f340;打印日志 &#x1f334;传递参数 &#x1f38b;增(Insert) &#x1f6a9;返回主键 &#x1f384;删(Delete) &#x1f332;改(Update) &#x1f333;查(Select) &#x1f6a9;起别名 &#x1f6a9;结果映射 &#x1f6a9;开启驼…

【分布式理论14】分布式数据库存储:分表分库、主从复制与数据扩容策略

文章目录 一、分表分库1. 数据分表的必要性与方式2. 数据分库原则与优势 二、主从复制1. 读写分离架构设计2. 数据复制方式3. MySQL实现主从复制4. MySQL主从复制实践与高可用方案 三、数据扩容 随着业务的不断发展和数据量的增长&#xff0c;传统的单机关系型数据库已经逐渐不…

vxe-grid 通过配置式给单元格字段格式化树结构数据,转换树结构节点

vxe-grid 通过配置式给单元格字段格式化树结构数据&#xff0c;转换树结构节点 比如用户自定义配置好的数据源&#xff0c;通过在列中配置好数据&#xff0c;全 json 方式直接返回给前端渲染&#xff0c;不需要写任何格式化方法。 官网&#xff1a;https://vxetable.cn npm i…

延迟任务的11种实现方式(下)!!

接上文&#xff1a; Redisson的RDelayedQueue Redisson他是Redis的儿子&#xff08;Redis son&#xff09;&#xff0c;基于Redis实现了非常多的功能&#xff0c;其中最常使用的就是Redis分布式锁的实现&#xff0c;但是除了实现Redis分布式锁之外&#xff0c;它还实现了延迟…

BS5852英国家具防火安全条款主要包括哪几个方面呢?

什么是BS5852检测&#xff1f; BS5852是英国针对家用家具的强制性安全要求&#xff0c;主要测试家具在受到燃烧香烟和火柴等火源时的可燃性。这个标准通常分为四个部分进行测试&#xff0c;但实际应用中主要测试第一部分和第二部分&#xff0c;包括烟头测试和利用乙炔火焰模拟…

如何使用Spark SQL进行复杂的数据查询和分析

使用Spark SQL进行复杂的数据查询和分析是一个涉及多个步骤和技术的过程。以下是如何使用Spark SQL进行复杂数据查询和分析的详细指南&#xff1a; 一、准备阶段 环境搭建&#xff1a; 确保已经安装并配置好了Apache Spark环境。准备好数据源&#xff0c;可以是CSV文件、JSON…

iOS事件传递和响应

背景 对于身处中小公司且业务不怎么复杂的程序员来说&#xff0c;很多技术不常用&#xff0c;你可能看过很多遍也都大致了解&#xff0c;但是实际让你讲&#xff0c;不一定讲的清楚。你可能说&#xff0c;我以独当一面&#xff0c;应对自如了&#xff0c;但是技术的知识甚多&a…

FFmpeg 源码编译安装

参考&#xff1a; https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu Linux (Ubuntu) 下载 FFmpeg 源码&#xff0c;并将其解压&#xff0c;这里我将它放在 ~/ffmpeg_source 目录下&#xff1b; cd ~/ffmpeg_sources wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org…

【pytest】编写自动化测试用例命名规范README

API_autoTest 项目介绍 1. pytest命名规范 测试文件&#xff1a; 文件名需要以 test_ 开头或者以 _test.py 结尾。例如&#xff0c;test_login.py、user_management_test.py 这样的命名方式&#xff0c;pytest 能够自动识别并将其作为测试文件来执行其中的测试用例。 测试类…