как удалить дубликаты из массива?
Всем привет! Помогите, пожалуйста, решить задачу на алгоритмы. Задача из яндекса, вот условие:
вот мой код:
#include <iostream>
#include <vector>
int main(){
int n;
std::cin >> n;
std::vector<int> v(n);
for(int i = 0; i < n; ++i)
{
std::cin >> v[i];
}
int m = 0, k = 1;
while(k < n)
{
if(v[k] != v[m])
{
v[m+1] = v[k];
++m;
}
++k;
}
++m;
for(int i = 0; i < m; ++i)
{
std::cout << v[i];
}
return 0;
}
Но при первом же тесте проваливается. Подскажите, что здесь не так
Ответы (2 шт):
Автор решения: Ahmed_08
→ Ссылка
#include <iostream>
#include <vector>
int main(){
int n;
std::cin >> n;
std::vector<int> v(n);
int len = 0;
for(int i = 0; i < n; ++i)
{
int el;
std::cin >> el;
if(i == 0)
{
v[len++] = el;
}else{
if(v[len-1] != el)
{
v[len++] = el;
}
}
}
for(int i = 0; i < len; ++i)
{
std::cout << v[i] << ' ';
}
return 0;
}
Автор решения: Qwertiy
→ Ссылка
unsigned n;
int x;
cin >> n >> x;
cout << x;
for (int y; --n; )
if (cin >> y, x != y)
cout << ' ' << (x=y);
cout << endl;