题目:
在数组里找一个数,找到另一个数替换,然后再对数组进行排序,输出可能的数组最小值。
题解:
要求最后得到的最小,把最大的那个替换掉,而且最简单的还是替换成1,题目中说必须要替换掉一个,不能用自己替换掉自己,如果输入的全是1,就要替换成2。
代码:
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 1;
int a[N];
int main() {
int n;
cin>>n;
for(int i=0;i<n;++i)
scanf("%d",&a[i]);
sort(a,a+n);
if(a[n-1]==1){
a[n-1]=2;
sort(a,a+n);
}
else{
a[n-1]=1;
sort(a,a+n);
}
for(int i = 0 ; i < n-1 ; i++)
printf("%d ",a[i]) ;
printf("%d\n",a[n-1]) ;
return 0;
}