买第三便宜帽子

度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少?

输入描述:

首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000

 

输出描述:

如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1

示例1

输入

10
10 10 10 10 20 20 30 30 40 40

输出

30

我的方案:

set方法:

#include<iostream>
#include<set>
#include<string>
#include<algorithm>
using namespace std;
int main()
{cout << "请输入帽子总数";int count;cin >> count;cout << endl;cout << "请分别输入帽子价格:" << endl;set<int> s;while (count--){int i;cin >> i;s.insert(i);}set<int>::iterator ite1 = s.begin();set<int>::iterator ite2 = s.end();for (; ite1 != ite2; ite1++){cout << *ite1;}cout << endl;if (s.size() < 3)cout << "没有第三便宜帽子";else{set<int>::iterator ite3 = s.begin();ite3++;ite3++;cout << "第三便宜帽子价格为:" <<*ite3 << endl;}	return 0;
}

vector方法:

//输入描述:首先输入一个正整数N,N<=50,接下来输入N个数表示每顶帽子的价格
//输出描述:如果存在第三便宜的帽子,请输出这个价格是多少,否则输入-1#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
int main20()
{cout << "请输入帽子总数";int count;cin >> count;cout << endl;cout << "请分别输入帽子价格:"<<endl;vector<int> v;int i=0;while (count--){cin >> i;v.push_back(i);}cout <<"输入完毕" << endl;sort(v.begin(), v.end());v.erase(unique(v.begin(), v.end()), v.end());//删去一个元素边上与它相同的元素 cout << "dfdf" << endl;for (int i = 0; i < v.size(); i++){cout << v[i] << " ";}if (v.size() < 3)cout << "没有第三便宜帽子";elsecout << "第三便宜帽子价格为:" << v[2] << endl;system("pause");return 0;}

网友们的方法:

//set方法
#include <iostream>
#include <set>int main(void)
{int n;while(std::cin >> n){std::set<int> iprice_N;for(int i=0; i<n; ++i){int ivalue;std::cin >> ivalue;iprice_N.insert(ivalue);}if(iprice_N.size() < 3){std::cout << -1 << std::endl;continue;}//set里面是元素是不允许重复的,并且自动从小到大排序好了std::set<int>::iterator it = iprice_N.begin();it++;it++;std::cout << *it << std::endl;}return 0;
}
//数组方法
#include<iostream>
#include<algorithm>
using namespace std;
int main() {int n;int prize[50];cin >> n;if(n<3) {cout<<"-1";return 0;}for (int i = 0; i < n; i++) {cin >> prize[i];}sort(prize, prize + n);int cnt = 0;for (int i = 0; i < n; i++) {if (prize[i + 1] > prize[i]&&(i+1)<n) {cnt++;if (cnt == 2) {cout << prize[i + 1];}}}if(cnt<2) {cout<<"-1";return 0;}return 0;
}
//vector方法
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;  
int main(){   int n,tmp;    cin>>n;   vector<int> v;   while(n--){  cin>>tmp;        v.push_back(tmp);    }    sort(v.begin(),v.end());    v.erase(unique(v.begin(),v.end()),v.end());    cout<<(v.size()<3?-1:v[2]);    return 0;
}

参考自:http://s3.nowcoder.com/questionTerminal/f3aaf8fedcea43c6b12a11710068726b?toCommentId=527216

https://blog.csdn.net/qq_41937767/article/details/80510130

https://blog.csdn.net/u011361880/article/details/77480377?utm_source=blogxgwz9

 

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

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

相关文章

【Linux】linux服务器下的帮助命令总结

在Linux环境中&#xff0c;如果遇到困难&#xff0c;可以使用帮助命令来取得帮助。 常见的帮助命令有&#xff1a;man 命令、help 命令、info 命令。 在介绍这几个命令前&#xff0c;需要先介绍一下内建命令与外部命令&#xff0c;因为有一些查看帮助的工具在内建命令与外建命令…

Python数据驱动模块DDT

一.DDT简介 Data Driven Testing&#xff0c;数据驱动&#xff0c;简单来说就是测试数据的参数化 Python数据驱动模块DDT&#xff0c;包含类的装饰器ddt和两个方法装饰器data&#xff08;直接输入测试数据&#xff09; 通常情况下&#xff0c;data中的数据按照一个参数传递给…

服务器Ubuntu Import Error:cannot import name main

利用Xftp5进入到usr/bin 目录下&#xff0c;找到pip3. 把它拷贝到桌面上&#xff0c;用pycharm打开&#xff0c;进行如下修改&#xff1a; 把下面的三行 from pip import main if __name__ __main__:sys.exit(main())替换为&#xff1a; from pip import __main__ if __name…

【Linux】linux服务器下包管理器

通常Linux应用软件的安装包有三种&#xff1a; 1&#xff09; tar包&#xff0c;如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。 2&#xff09; rpm包&#xff0c;如software-1.2.3-1.i386.rpm。它是Redhat Linux提供的一种包封装格式。 3&#xff09; dpk…

Python脚本做接口测试,抛弃接口测试工具是否可行?(二)

学习是为了更好的应用&#xff0c;之前做接口测试一直用的postman、fiddler&#xff0c;感觉用工具还是有些局限性&#xff0c;于是想着把学到的python灵活运用到接口测试中&#xff0c;于是就有了以下案例&#xff0c;思考着想用unittest做个简单的接口测试脚本&#xff0c;可…

阿里云服务器部署django项目

ubuntu自带了2.7。想要装3.5并设置为默认python版本。 安装python3.5 sudo add-apt-repository ppa:fkrull/deadsnakes sudo apt-get update sudo apt-get install python3.5 python --version sudo apt-get install python3-pip #装pip3设置python3为默认版本 直接执行这两个…

【Linux】ls命令查看linux目录下的内容

ls 命令是Linux下最常用的命令之一&#xff0c;用于显示指定工作目录下之内容&#xff08;列出目前工作目录所含之文件及子目录)。 本文将介绍其基本的用法和一些典型的用例 Usage: ls [OPTION]... [FILE]... 不输入参数(默认将文件名或目录名称开头为"."的视为隐藏…

ubuntu防火墙操作

教你如何开启/关闭ubuntu防火墙 目录 [隐藏] 1 安装方法2 使用方法3 推荐设置4 详细使用说明安装方法 sudo apt-get install ufw当然&#xff0c;这是有图形界面的(比较简陋)&#xff0c;在新立得里搜索gufw试试…… 使用方法 1 启用 sudo ufw enablesudo ufw default deny …

【Python】hashlib模块实现MD5加密

MD5消息摘要算法&#xff08;英语&#xff1a;MD5 Message-Digest Algorithm&#xff09;&#xff0c;一种被计算机安全领域广泛使用的密码散列函数&#xff0c;可以产生出一个128位&#xff08;16字节&#xff09;的散列值&#xff08;hash value&#xff09;&#xff0c; 用以…

Python中json和pickle模快dumps()、loads()、dump()、load()序列化和反序列化实例

在python中&#xff0c;序列化可以理解为&#xff1a;把python的对象编码转换为json格式的字符串&#xff0c;反序列化可以理解为&#xff1a;把json格式字符串解码为python数据对象。在python的标准库中&#xff0c;专门提供了json库与pickle库来处理这部分。 用于序列化的两…

计算机编码发展历史和编码方式

编码是信息从一种形式或格式转换为另一种形式的过程&#xff0c;也称为计算机编程语言的代码简称编码。 用预先规定的方法将文字、数字或其它对象编成数码&#xff0c;或将信息、数据转换成规定的电脉冲信号。 编码在电子计算机、电视、遥控和通讯等方面广泛使用。 解码&#x…

解决Error: That port is already in use.

ubuntu系统下&#xff0c;运行一个django项目&#xff0c;即输入python manage.py runserver后&#xff0c;可能出现 Error: That port is already in use.的错误。 即端口号已经被占用,说明servr已经在运行了(也有可能在后台运行) 那么找到该进程,kill掉即可. 或者最简单的…

Jmeter+ForEach控制器+BeanShell取样器+BeanShell PostProcessor爬取网站信息储存csv

1、正则提取器ForEach控制器BeanShell PostProcessorBeanShell 取样器&#xff0c;爬取网站信息并写入到csv中 2、访问网站设置 3、正则提取设置&#xff0c;匹配数字-1代表提取所有符合条件的信息 4、ForEach控制器设置迭代每次提取出来的信息 5、BeanShell PostProcessor设置…

【Python】python3编码方式encode介绍

上一篇文章介绍了计算机编码发展历史和编码方式&#xff0c;现在我们聚焦到python语言中&#xff0c;在最新的Python3版本中&#xff0c;字符串是以Unicode编码的&#xff0c;也就是说&#xff0c;Python的字符串支持多语言。例如&#xff1a; print(我喜欢 computer.encode(u…

telnet用法 测试端口号是否可以使用

方法 1 首先打开控制面板 2 点击程序 3 点击程序与功能 4 点击左边启用或关闭windows功能 5 在telnet客户端打上勾 点击确定 6 winr打开运行 输入cmd 7 打开后输入telnet ip 端口号 如果出来其他窗口则说明这个端口可用。若出现超时&#xff0c;说明这个端口不可用 前提…

Python操作读写txt文件

比较常用的文件读写选项&#xff1a; r读写模式 w写读模式 a追加写模式 a追加读模式&#xff0c;因为文件值在最后&#xff0c;所以需要先seek&#xff08;0&#xff09;到文件开头&#xff0c;然后再读 ‘r’以读的方式打开&#xff0c;只能读文件&#xff0c;若文件不存…

【Python】PyCryptodome模块实现多种加密算法

PyCryptodome是python一个强大的加密算法库&#xff0c;可以实现常见的单向加密、对称加密、非对称加密、非对称加密算法签名和流加密算法。 直接pip安装即可&#xff1a;pip install pycryptodome 官网地址&#xff1a;https://pypi.org/project/pycryptodome/ 一、base64编码…

阿里云 Ubuntu上的mysql运行sql文件来创建表

1、上传sql文件到指定目录 2、登录数据库 mysql -u root -p 3、查看数据库 show databases; 4、创建数据库 create database wlh; 5、对新创建的数据库操作 use wlh; 6、导入sql文件 7、查看数据库中表格 若有你数据库中的表格则导入成功 8、退出数据库操作 或者用quit; …

linux Ubuntu安装ftp并将本地文件上传到云服务器

确认是否已经安装ftp pgrep vsftpd无结果如下图&#xff1a; 2、执行安装 3、查看ftp是否安装成功 systemctl status vsftpd.service 4、 &#xff08;1&#xff09;新建"/home/uftp"目录作为用户主目录 打开"终端窗口"&#xff0c;输入"sudo mkd…

【Python】PyCryptodome模块中5种AES加密模式介绍

分组密码有五种工作体制&#xff1a; 1.电码本模式&#xff08;Electronic Codebook Book (ECB)&#xff09;&#xff1b; 2.密码分组链接模式&#xff08;Cipher Block Chaining (CBC)&#xff09;&#xff1b; 3.计算器模式&#xff08;Counter (CTR)&#xff09;&#xff1b…