0
已解决
张帆
中级天翼
中级天翼
#include<bits/stdc++.h>
using namespace std;
int a[10001];
int main(){
long long n;
int h;
cin>>n;
for(int i=0;i<n;i++){
cin>>h;
a[h]++;
}
for(int i=0;i<n;i++){
if(a[i]==1)
a[i]=0;
}
for(int i=0;i<n;i++)
while(a[i]--)
cout<<i<<" ";
return 0;
}
Only twenty
只有20
0
已采纳
臧鸿志
初级天翼
初级天翼
利用桶,无论是去重排序,还是不去重排序,只要涉及到排序,得遍历桶数组,而不是原数组。
而利用桶去重不排序那题,遍历的就是原数组。
0
周明轩
资深光能
资深光能
第1,
long long n;
……
……
for(int i=0;i<n;i++)
i和n类型不一样。
第2,
for(int i=0;i<n;i++){
if(a[i]==1)
a[i]=0;
}
for(int i=0;i<n;i++)
while(a[i]--)
cout<<i<<" ";
我建议你改成:
for(i=1;i<=n;i++)
{
if(b[i]>1)
{
while(b[i]>0)
{
cout<<i<<' ';
b[i]--;
}
}
}
望采纳
周明轩在2020-03-27 14:49:33追加了内容
for(int i=0;i<n;i++){
cin>>h;
a[h]++;
}
应该是:
for(int i=0;i<n;i++){
cin>>h;
a[h-1]++;
}
0
周明轩
资深光能
资深光能
for(int i=0;i<n;i++){
if(a[i]==1)
a[i]=0;
}
for(int i=0;i<n;i++)
while(a[i]--)
cout<<i<<" "
不应该是n;
我之前发错了。
应该是
从1到10000
0
包涵宇
中级天翼
中级天翼
你的思路我懂
但这里
for(int i=0;i<n;i++){
if(a[i]==1)
a[i]=0;
}
应该改为
for(int i=0;i<=10000;i++){
if(a[i]==1)
a[i]=0;
}
望采纳!!!
0
潘晨皓
高级天翼
高级天翼
0