第十届蓝桥杯 修改数组 C++
思路:
若数组中的元素A[i]已存在,将标记数组a[A[i]]标记为1,否则一直加一到a[A[i]]=0。
代码:
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cmath>
#define ll long long
using namespace std;
//标记数组中的元素,已存在,置为1
int a[100005]= {0};
int main() {
int n;
cin>>n;
int A[n];
for(int i=0; i<n; i++) {
cin>>A[i];
if(a[A[i]]==0) {//如果未被标记
a[A[i]]=1;//标记,结束
} else {//已被标记
while(a[A[i]]!=0)//一直加一知道未被标记
A[i]+=1;
a[A[i]]=1;//标记得到的新数
}
}
for(int i=0; i<n; i++)//输出
cout<<A[i]<<" ";
cout<<endl;
return 0;
}
来源:CSDN
作者:Dreamboat0707
链接:https://blog.csdn.net/qq_40659901/article/details/104450065