删除数组中重复元素 (使用stl::set)
来源:互联网 发布:php 获取视频预览图 编辑:程序博客网 时间:2024/05/29 19:44
/*
*程序作用删除数中重复的元素,先使用set 遍历一次数组,然后在使用两个指针,以及set查重,
*去重复之后使用0填补多余空间
*复杂度 O(NlogN)
*空间复杂度 O(N)
*程序作用删除数中重复的元素,先使用set 遍历一次数组,然后在使用两个指针,以及set查重,
*去重复之后使用0填补多余空间
*复杂度 O(NlogN)
*空间复杂度 O(N)
*/
#include<iostream>#include<set>using namespace std;void delete_over_arry(int *a,int len);void print(int *a ,int len);int main(){ int p[]={1,1,2,5,3,7,3,4,8,2,1,3,9,1}; print(p,sizeof(p)/sizeof(int)); delete_over_arry( p,sizeof(p)/sizeof(int)); print(p,sizeof(p)/sizeof(int)); return 0;}void print(int *a ,int len){ for(int i=0;i<len;i++) cout<<a[i]; cout<<endl;}void delete_over_arry(int *a,int len){ set<int> temp_set; int *set_p=a+1; int *new_p=a+1; int count=0; temp_set.insert(a[0]); for(int i=1;i<len;i++) { if(temp_set.count(*set_p)) { set_p++; count++; } else { temp_set.insert(*set_p); *new_p++=*set_p++; } } for(int i=0;i<count;i++) *new_p++=0; }以下是程序运行结果:
[trageday@lei-yum code_test]$ g++ -o delete_overarray delete_overarray.cpp[trageday@lei-yum code_test]$ ./delete_overarray 1125373482139112537489000000
0 0
- 删除数组中重复元素 (使用stl::set)
- 删除数组中重复元素--哈希表方法和set方法
- C++使用STL::vector删除数组内的重复元素
- 删除数组中重复元素
- 删除数组中重复元素
- 在Java中利用set特性删除重复的数组元素
- 在Java中利用set特性删除重复的数组元素
- 删除数组中重复元素-Hash表方法和set方法
- VB中删除数组重复元素
- 删除数组中存在重复的元素。
- Java 删除数组中重复的元素
- 删除数组中重复的元素
- java 删除数组中重复元素
- 删除排序数组中重复的元素
- 删除一个数组中重复的元素
- Leetcode018--删除数组中重复的元素
- java删除数组中重复元素
- jQuery删除数组中重复元素
- Navicat for MySQL 9.1.6 Enterprise 注册码:
- sql
- POJ 2387 Til the Cows Come Home
- eCharts使用图表简单示例
- jquery和highcharts折线图、柱形图、饼状图-模拟后台传参源码
- 删除数组中重复元素 (使用stl::set)
- 卡方分布
- 吉大 计算机编程能力培养课程设计 完美的代价
- centos配置静态ip
- C++网络编程之TCP UDP
- plsql 过程化(procedure)sql
- VS2010开发程序打包详解
- 博士新生
- 【转】ViewPager + Fragment实现滑动标签页