去除已排序数列中的重复数--c++实现
2017-05-05 11:50
399 查看
一组数列已经排序,需要去除其中重复的数,同时输出去除重复数之后数列的长度。
有两种方法。
1、使用c++的STL中的unique函数来实现
#include<iostream>
#incnlude<algorithm>
#include<vector>
using namespace std;
int main()
{
vector<int> vec;
int n;
cin >> n;
for(int i = 0; i < n; i++)
{
int value;
cin >> value;
vec.push_back(value);
}
//若无序,则使用sort函数排个序
sort(vec.begin(),vec.end());
erase(unique(vec.begin(),vec.end()),vec.end());
cout << vec.size() << endl;
return 0;
}
2、不使用unique
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> vec;
int n;
cin >> n;
for(int i = 0; i < n; i++)
{
int value;
cin >> value;
vec.push_back(value);
}
int index = 0;
for(int i = 1; i < n; i++)
{
if(vec[index] != vec[i])
vec[++index] = vec[i];
}
cout << index+1 << endl;
for(int i = 0; i < index+1; i++)
cout << vec[i] << " ";
return 0;
}
有两种方法。
1、使用c++的STL中的unique函数来实现
#include<iostream>
#incnlude<algorithm>
#include<vector>
using namespace std;
int main()
{
vector<int> vec;
int n;
cin >> n;
for(int i = 0; i < n; i++)
{
int value;
cin >> value;
vec.push_back(value);
}
//若无序,则使用sort函数排个序
sort(vec.begin(),vec.end());
erase(unique(vec.begin(),vec.end()),vec.end());
cout << vec.size() << endl;
return 0;
}
2、不使用unique
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> vec;
int n;
cin >> n;
for(int i = 0; i < n; i++)
{
int value;
cin >> value;
vec.push_back(value);
}
int index = 0;
for(int i = 1; i < n; i++)
{
if(vec[index] != vec[i])
vec[++index] = vec[i];
}
cout << index+1 << endl;
for(int i = 0; i < index+1; i++)
cout << vec[i] << " ";
return 0;
}
相关文章推荐
- C++实现的位图法去除重复出现的元素
- 【C++】去除排序数组中重复的元素
- 2015年华为校招机试题和代码实现(分解字符串,拼音转数字,去除重复字符并排序,等式变换)
- c++排序和去除重复的算法
- 尾单词长度、1 3 9 27 81 实现1-121任意算法、去除重复字符并排序、拼音转数字、按要求分解字符串
- C++程序设计实践指导1.7超长数列中n个数排序改写要求实现
- 华为机试题C++-去除重复字符并排序
- 华为笔试1 去除重复字符并排序的字符串 c++ string 实现
- 一个关于去除数组重复元素的问题(C语言实现)
- 六种排序的C++实现
- 六种排序的C++实现
- 六种排序的C++实现
- 一个关于去除数组重复元素的问题(C语言实现)
- 霍尔快速排序 非递归 C++实现
- 二分搜索树排序binary search sorting的c++实现
- 霍尔快速排序 非递归 C++实现
- SQL分页排序的实现与分页数据重复问题——以Oracle rownum为例
- 交换排序——冒泡排序和快速排序,C++代码实现
- 插入排序——直接插入排序和希尔排序,C++代码实现
- C++实现模板顺序表和三种排序方法