天天看點

藍橋杯 算法提高 ADV-162 題目1 最大最小值

算法提高 題目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;
}
           

繼續閱讀