题解 | #特殊排序#
特殊排序
https://www.nowcoder.com/practice/57f0f528bff149be9580af66f6292430
#include <iostream> #include <algorithm> using namespace std; //大脑当机了属于,哼次哼次做完才发现,根本不用找最大数,也不用建立替换数组,直接对原始数组排序,最后一个就是最大值了 int main() { int n; while (cin >> n) { int a[n],b[n-1]; for(int i=0;i<n;i++) { cin>>a[i]; } if(n==1) { cout<<a[0]<<endl; cout<<"-1"<<endl; } else{ int max=a[0]; int xb=0; for(int i=0;i<n;i++) { if(a[i]>max) { max=a[i]; xb=i; } } for(int j=0,i=0;i<n;) { if(i!=xb){ b[j]=a[i]; j++;i++; } else{i++;} } sort(b,b+n-1); cout<<max<<endl; for(int i=0;i<n-1;i++) { cout<<b[i]<<" "; } cout<<endl; } } } // 64 位输出请用 printf("%lld")