c++ hash_set 删除原数组重复数据,且不改变原数组顺序
来源:互联网 发布:招聘简历采集软件 编辑:程序博客网 时间:2024/04/28 08:46
在中兴笔试中,有一题目要求,去除正整数序列数组中的重复元素,且不改变元素原来位置,例如 arr [] = {1,2,3,4,1,2,3,4} 输出为{1,2,3,4}.再例如arr[] = {1,2,2,2,3,3,4,4,5,5,1,1,1,4,4,4,5,5,6,6}
输出为{1,2,3,4,5,6}
在hash_set中,可以保证元素的唯一性,但是不能够保证元素的顺序,故此题不能采用hash_set解决。
#include <iostream>#include <vector>#include <set>#include <hash_set>using namespace std ;int main(){int arr[] = {1,1,2,2,3,3,4,4,5,5,6,6,1,0,88,99,5,77};int arrLength = sizeof(arr)/sizeof(arr[0]);/*数组元素输出*/cout<<" the arr is : "<< endl;for (int i = 0 ; i < arrLength ; i++){cout<< arr[i]<< " "; }cout<<endl;/*容器输出*/cout<<"the vector test:"<<endl;vector<int> vec(arr,arr+arrLength) ;vector<int>::iterator vecIt ;for (vecIt =vec.begin();vecIt != vec.end();vecIt++){cout<<*vecIt<<" ";}cout<<endl;/*set集合*/set<int> s ;set<int>::iterator setIterator ;for (vecIt = vec.begin() ; vecIt != vec.end();vecIt++){s.insert(*vecIt);}cout<< "set test :"<< endl;for(setIterator = s.begin();setIterator != s.end();setIterator++){cout<<*setIterator<<" ";}cout<<endl;/*hash_set集合元素*/hash_set<int> hs ;hash_set<int>::iterator hash_setInterator ;for (vecIt = vec.begin();vecIt != vec.end();vecIt++){hs.insert(*vecIt);}cout<<"hash set test :"<<endl;for (hash_setInterator = hs.begin() ; hash_setInterator != hs.end();hash_setInterator++){cout<< *hash_setInterator << " ";}system("pause");return 0 ;}
代码输出如下:
要解决中兴的笔试题,可以采用以下思路:
#include <iostream>#include <vector>using namespace std ;int main(){int arr[] = {1,2,20,1,1,2,2,3,4,5,6,7,8,8,8,9,2,3,4,7,7,8,6,1} ; int arrLength = sizeof(arr)/sizeof(arr[0]);int index = 1 ;bool isExit = false;for(int i = 0 ; i < arrLength ; i++){for (int j = 0 ; j < index ;j++ ){if(arr[i] == arr[j]){isExit = true ;}}if (!isExit){arr[index]= arr[i];index++;}isExit = false ;} for (int i = 0 ;i < index ;i++){cout<<arr[i]<<" ";} system("pause");return 0 ;}输出为:
0 0
- c++ hash_set 删除原数组重复数据,且不改变原数组顺序
- 5.删除数组arr的最后一个元素,不改变原数组,结果返回新数组。
- 不改变原数组,添加或删除一个元素(js)
- 在原数组中删除重复的元素 | Python
- java数组实现去重且不改变原先顺序
- matlab中去掉矩阵重复行并且不改变原顺序
- 删除元素,在原数组上
- Sorted Union--多个数组按原顺序合并并去除重复值
- 数组-删除重复数据
- 【算法】O(1)空间,不改变原数组的情况下找第K大的数
- 在原数组上删除数组的元素
- 删除数组最后一项,不在原数组操作
- 过滤原数组
- 是否改变原数组的常用方法归纳
- 是否改变原数组的常用方法归纳
- PHP 二维数组去掉重复值并保持原结构
- 数组中删除重复数据
- 人人都来写算法 之 归并有序数组,(要求:利用原数组,且时间复杂度O(n)
- rois welpwn -xman
- 汇编 shl和shr指令的使用
- -----tomcat-----------
- 工厂方法模式(Factory Method)-最易懂的设计模式解析
- 普通字符设备驱动的两种注册方式(新&旧)
- c++ hash_set 删除原数组重复数据,且不改变原数组顺序
- java项目之——坦克大战15
- G立项管理
- Mybatis Generator最完整配置详解
- 【算法学习】最大子数组问题的分治法求解
- MFC数据库编程救急方案(小白向)
- #50 Product of Array Exclude Itself
- 1037. 在霍格沃茨找零钱(20)
- Linux多线程编程