1.相等数赋值成不一样的两个数:
struct和sort解决
2.一样的两个数
for(int i=1;i<=n;i++){
cin>>a[i];
b[i]=a[i];
}
sort(b+1,b+n+1);
int cnt=unique(b+1,b+n+1)-b-1;
for(int i=1;i<=n;i++) a[i]=lower_bound(b+1,b+cnt+1,a[i])-b;
文章介绍了如何在C++中使用struct和sort函数对数组进行操作,确保相等数赋值后保持唯一性并调整顺序。首先将数组元素复制到另一个数组,然后对新数组进行排序,最后用lower_bound找到每个原数组元素在排序后的正确位置。
1.相等数赋值成不一样的两个数:
struct和sort解决
2.一样的两个数
for(int i=1;i<=n;i++){
cin>>a[i];
b[i]=a[i];
}
sort(b+1,b+n+1);
int cnt=unique(b+1,b+n+1)-b-1;
for(int i=1;i<=n;i++) a[i]=lower_bound(b+1,b+cnt+1,a[i])-b;
454

被折叠的 条评论
为什么被折叠?