O(N) 桶排序
O(N) 桶排序
#include "bits/stdc++.h" using namespace std; int m[101]={}; int main(){ int n; cin>>n; for(int i=0;i<n;i++){ int v;cin>>v; m[v]++; } int l=0,r=100,mx=2,mn=200; while(l<=r){ if(m[l]==0){ l++; continue; } if(m[r]==0){ r--; continue; } int mm=min(m[l],m[r]); m[l]-=mm;if(l!=r)m[r]-=mm; mx=max(mx,r+l); mn=min(r+l,mn); //cout<<r<<" "<<l<<" "<<mx<<" "<<mn<<endl; } cout<<mx-mn; }