Loading

P5718 找最小值

【深基4.例2】找最小值

题目描述

给出 n n n n n n 个整数 a i a_i ai,求这 n n n 个整数中最小值是什么。

输入格式

第一行输入一个正整数 n n n,表示数字个数。

第二行输入 n n n 个非负整数,表示 a 1 , a 2 … a n a_1,a_2 \dots a_n a1,a2an,以空格隔开。

输出格式

输出一个非负整数,表示这 n n n 个非负整数中的最小值。

样例

样例输入

8
1 9 2 6 0 8 1 7

样例输出

0

提示

数据保证, n ≤ 100 n\le100 n100 0 ≤ a i ≤ 1000 0\le a_i \le 1000 0ai1000

思路

这道题有很多思路,难度也是入门级,我看了下题解区大多是sort排序和逐位比较,所以想用map来解题。

STL Map

Map是STL的一种关联式容器,它的底层是红黑树实现的,它的插入和查询都是log级别的。
map的简单使用

# include <iostream>
# include <string>
# include <map>
using namespace std;
int main(){
	map<string,int> dict;//定义一个map
	dict["Tom"]=1;//定义映射关系
	dict["James"]=3;
	dict["Alice"]=5;
	if(dict.count(" Alice")){
		cout<<"Alice is in class"<<dict["Alice"]<<endl;
	}
	return 0;
}

从上述代码中可以看出map的一个简单使用,其实还是比较方便的,用于本题的解决方法如下:

题解

#include<bits/stdc++.h>
#include<map>
using namespace std;
int main(){
	map<int,int>Dict;
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	{	int tmp;
		scanf("%d",&tmp);
		Dict[tmp]++;
	}
	for (int i=0;i<=1000;i++){
		if(Dict[i]!=0){
			printf("%d",i);
			break;
		}
	}
	return 0;
}
posted @ 2023-01-17 22:02  nliuc  阅读(91)  评论(0编辑  收藏  举报