题目描述
Description
输入n个数,n<=100,找到其中最小的数和最大的数
输入描述 Input Description
第一行一个整数n
接下来一行n个整数,每个整数不超过231 -1
输出描述 Output Description
最小和最大的数
样例输入 Sample Input
4
1 2 3 4
样例输出 Sample Output
1 4
数据范围及提示 Data Size & Hint
无
解法1:
#include <stdio.h>
#include <stdlib.h>
const int INF=(1<<31)-1;
//const long long INF=(1LL<<31)-1;
int main()
{
int n,t,i;
int max=-INF,min=INF;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&t);
if(t<min)
min=t;
if(t>max)
max=t;
}
printf("%d\t%d",min,max);
return 0;
}
int是32位,表示的整数范围为-2^31<=x<=2^31-1,long long是64位
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i,m;
scanf("%d",&n);
int a[1000];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int max=a[0],min=a[0];
for(m=0;m<n;m++)
{
if(a[m]<min)
min=a[m];
if(a[m]>max)
max=a[m];
}
printf("%d %d",min,max);
return 0;
}
两种解法的时间复杂度相同,都是O(n);但是空间复杂度,解法1是O(1),解法2是O(n).