算法提高 题目1 最大最小值
时间限制:1.0s 内存限制:1.0GB
问题描述
给定 N 个整数,请你找出这 N 个数中最大的那个和最小的那个。
输入格式
第一行包含一个正整数 N 。(1 ≤ N ≤ 10000)。
第二行为 N 个用空格隔开的整数,每个数的绝对值不超过 1000000。
输出格式
输出仅一行,包含两个整数 x,y,x 表示 N 个数中的最大值,y 表示 N 个数中的最小值。x,y 之间用一个空格隔开。
样例输入
4
2 0 1 2
样例输出
2 0
分析:创建两个变量,一个存最大值,一个存最小值,为了防止初值干扰结果,将最大值的初值设为-1000001,最小值的初值设为1000001。
同时,由于不需保留这组数的内容,为了节省空间,并不需要创建一个数组去存这组数,只用一个变量存每一次输入的值就够了,代码如下:
#include <iostream>
using namespace std;
int main()
{
int N;
int a;
int max = -1000001, min = 1000001;
cin >> N;
for(int i = 0; i < N; i++)
{
cin >> a;
if(max < a) max = a;
if(min > a) min = a;
}
cout << max << " " << min << endl;
return 0;
}